是否有可能访问Visual中由罗斯林诊断分析器分析的文档的ITextBuffer实例。或者至少是文件名,这样我就可以自己检索ITextBuffer了?
有关如何为c#编写自定义代码分析器的详细信息,请参阅:https://learn.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/tutorials/how-to-write-csharp-analyzer-code-fix
发布于 2019-06-23 23:40:06
SyntaxTree有一个属性FilePath,文档也是这样,如果不是空字符串,它将是文件的路径。
不知道该怎么从那里转到缓冲区。但也不清楚你为什么想要缓冲区..。
发布于 2019-06-20 21:19:14
一般来说,创建分析器周围的基础设施是为了允许它们在Visual之外运行(例如。或作为CI构建系统的一部分)。这就是为什么在Roslyn和Visual之间没有很多简单的互操作方法。但是,有几个不同的可拓方法可以帮助您弥合Visual和Roslyn之间的差距。
我相信你需要:
Install-Package Microsoft.CodeAnalysis.EditorFeatures.Textusing Microsoft.CodeAnalysis.Text;添加到分析器中如果您可以访问Document,则可以使用.TryGetText(out SourceText)检索文档的SourceText。
然后可以使用扩展方法FindCorrespondingEditorTextSnapshot来获得ITextSnapshot。
我在这里的知识有点不稳定,但我不确定您是否能得到一个ITextBuffer,因为您的分析器通常在没有为给定文件打开编辑器时运行,因此没有为它创建任何ITextBuffer。
https://stackoverflow.com/questions/56687121
复制相似问题