訪問文件的源代碼,我試圖寫一個微軟的Visual Studio擴展,分析代碼,並通知各功能的圈複雜度得分的用戶。我正在通過IWpfTextView訪問代碼進行分析,但現在我注意到IWpfTextView.TextViewLines只包含屏幕上可見的代碼行。我需要能夠訪問所有的代碼,而不僅僅是可見的代碼,以便計算圈複雜度。有人知道我可以如何訪問所有的代碼嗎?提前致謝!!如何從一個Visual Studio擴展
0
A
回答
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您可以創建一個EnvDTE.EditPoint(通過TextPoint.CreateEditPoint),然後調用EditPoint.GetText(...)
對於VS 2015和更高和C#/ VB.NET,你可以使用Compiler Platform (a.k.a. "Roslyn")在句法和語義模型被曝光編譯器
相關問題
- 1. 與Visual Studio擴展
- 2. 我想開發一個Visual Studio擴展,就像TypeScript擴展
- 3. 代碼擴展的Visual Studio 2010擴展
- 4. 如何調試Visual Studio擴展
- 5. 如何降級Visual Studio擴展?
- 6. 如何自動啓用Visual Studio擴展
- 7. 如何禁用Style Cop visual studio擴展?
- 8. 如何在Visual Studio擴展中綁定一個Stackpanel?
- 9. 如何安裝Visual Studio的一個擴展2008
- 10. 從Visual Studio擴展生成代碼
- 11. 擴展爲Specflow在Visual Studio
- 12. PathTooLongException的Visual Studio擴展
- 13. 擴展Visual Studio編輯器
- 14. 的Visual Studio QueryFirst擴展
- 15. 擴展Visual Studio 2010 C#Intellisense?
- 16. Visual Studio 2012擴展問題
- 17. 擴展Excel UI Visual Studio 2015
- 18. Visual Studio擴展安裝
- 19. Visual Studio擴展錯誤?
- 20. Visual Studio 2010:擴展/差異
- 21. Visual Studio命令行擴展
- 22. Visual Studio可擴展性
- 23. 測試Visual Studio擴展
- 24. Visual Studio 2010擴展部署
- 25. Visual Studio的Git擴展
- 26. Visual Studio 10文件擴展
- 27. 重複Visual Studio擴展單一語言
- 28. 如何從Visual Studio擴展中顯示等待彈出窗口?
- 29. 如何從Visual Studio 2012永久刪除擴展?
- 30. 如何從命令行安裝Visual Studio Gallery擴展