访问文件的源代码,我试图写一个微软的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扩展