2012-02-02 1 views
2

, 몇 가지 코드 생성기 루틴을 사용하여 몇 가지 간단한 작업을 수행 할 수 있습니다. 모든 것이 기술적 인 관점에서 잘 작동하기 때문에 실제 문제보다 더 많은 호기심이 생길 수 있습니다. 새로 생성 된 코드를 열면 (물론 구문 상 올바른) 들여 쓰기가 제대로되지 않습니다.현재 프로젝트에서 생성 된 코드의 들여 쓰기 용 API

이제 질문 : C# 코드 조각을 들여 쓰는 데 사용할 수있는 API가 있습니까? VS2010에서 Ctrl + E, D 바로 가기를 사용하면 어떻게됩니까?

감사합니다.

그냥 내가 그와 같은 기능을 찾고, 명확히하기 : notFormattedCode이 유효 C# 소스 코드의 일부이며, 함수의 출력 포맷 규칙의 적용 후 같은 코드

string GetProperlyFormattedCode(string notFormattedCode); 

. 즉, Visual Studio의 "편집 -> 고급 -> 형식 선택"명령 뒤에있는 기능을 찾고 있습니다.

+2

코드를 생성 할 때 들여 쓰기를 원하십니까? http://msdn.microsoft.com/en-us/library/system.codedom.compiler.indentedtextwriter.aspx가 도움이됩니까? – sisve

+0

안녕하세요, 제가 찾고있는 것이 아니라고 생각합니다. 예를 들어 질문을 편집하고 있습니다. – Andrea

+0

가능한 복제본 [C#에서 프로그래밍 방식으로 "문서 형식"이라고 어떻게 호출합니까?] (http://stackoverflow.com/questions/813119/how-do-you-call-document-format-programmatically-from-c) –

답변

1

이 질문에 대답하는 것 같다

How do you call "Document Format" programmatically from C#?

짧은 format 명령을 호출하는 비주얼 스튜디오의 개체 모델을 사용합니다.

+0

이 질문에 대답하지 않습니다. 참조한 질문은 "추가 기능 컨텍스트"에서 서식을 지정하는 것입니다. 그러면 추가 기능을 만들어야합니다. 이 질문은 addins를 포함하지 않습니다. – Nuzzolilo

+0

그는 OP에 예제로 사용 된 코드 인 VS로 코드 포맷을 프로그래밍 방식으로 활용할 수 있다고 제안했습니다 (CTRL + E, D). 이미 좋아하는 포맷터를 활용하려고 할 때 왜 무언가를 발명합니까? – EBarr

0

들여 쓰기 코드는 Microsoft.CodeAnalysis.CSharp Nuget 패키지와 .NET Framework 4.6 이상을 사용하십시오. 샘플 코드 :

public string ArrangeUsingRoslyn(string csCode) { 
    var tree = CSharpSyntaxTree.ParseText(csCode); 
    var root = tree.GetRoot().NormalizeWhitespace(); 
    var ret = root.ToFullString(); 
    return ret; 
} 

한 - 라이너 :

csCode = CSharpSyntaxTree.ParseText(csCode).GetRoot().NormalizeWhitespace().ToFullString(); 

당신은 또한 당신의 CS 파일의 방법을 분류 using이를 구성, 지역을 만드는 등 NArrange 들여 쓰기 아무것도하지 않습니다 참고하기 NArrange를 사용할 수 있습니다.

관련 문제