2017-01-03 2 views
0

코드를 분석하고 사용자에게 각 함수의 순환 복잡도 점수를 알리는 Microsoft Visual Studio 확장 프로그램을 작성하려고합니다. IWpfTextView를 통해 분석을 위해 코드에 액세스하고 있었지만 이제 IWpfTextView.TextViewLines에는 화면에 표시되는 코드 줄만 포함되어 있습니다. 나는 순환 적 복잡성을 계산하기 위해 눈에 보이는 코드뿐만 아니라 모든 코드에 액세스 할 수 있어야합니다. 아무도 내가 모든 코드에 액세스 할 수있는 방법을 알고 있습니까? 미리 감사드립니다 !!Visual Studio Extension에서 파일의 소스 코드에 액세스하는 방법

답변

1

자동화 모델 (EnvDTE)의 코드 모델을 사용하면 EnvDTE.Project.CodeModel 또는 EnvDTE.ProjectItem.FileCodeModel을 사용합니다. 참조 :

HOWTO: Get an EnvDTE.DTE instance from a Visual Studio package.

HOWTO: Navigate the code elements of a file from a Visual Studio .NET macro or add-in.

각 EnvDTE.CodeElement 여러 관련 포인트를 얻을 수 GetStartPoint/GetEndPoint 방법이있다. EnvDTE.TextPoint 당신은 구문과 의미 론적 모델에 의해 노출되는 Compiler Platform (a.k.a. "Roslyn")을 사용할 수 있습니다 (TextPoint.CreateEditPoint를 통해)를 EnvDTE.EditPoint를 만든 다음 VS 2015 이상 및 C#/VB.NET 들어 EditPoint.GetText(...)

를 호출 할 수 있습니다를 감안할 때 컴파일러

관련 문제