首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Roslyn访问ITextBuffer

Roslyn访问ITextBuffer
EN

Stack Overflow用户
提问于 2019-06-20 13:30:59
回答 2查看 153关注 0票数 0

是否有可能访问Visual中由罗斯林诊断分析器分析的文档的ITextBuffer实例。或者至少是文件名,这样我就可以自己检索ITextBuffer了?

有关如何为c#编写自定义代码分析器的详细信息,请参阅:https://learn.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/tutorials/how-to-write-csharp-analyzer-code-fix

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-23 23:40:06

SyntaxTree有一个属性FilePath,文档也是这样,如果不是空字符串,它将是文件的路径。

不知道该怎么从那里转到缓冲区。但也不清楚你为什么想要缓冲区..。

票数 2
EN

Stack Overflow用户

发布于 2019-06-20 21:19:14

一般来说,创建分析器周围的基础设施是为了允许它们在Visual之外运行(例如。或作为CI构建系统的一部分)。这就是为什么在Roslyn和Visual之间没有很多简单的互操作方法。但是,有几个不同的可拓方法可以帮助您弥合Visual和Roslyn之间的差距。

我相信你需要:

  1. 使用NugetPackage添加Install-Package Microsoft.CodeAnalysis.EditorFeatures.Text
  2. 将使用的using Microsoft.CodeAnalysis.Text;添加到分析器中

如果您可以访问Document,则可以使用.TryGetText(out SourceText)检索文档的SourceText

然后可以使用扩展方法FindCorrespondingEditorTextSnapshot来获得ITextSnapshot

我在这里的知识有点不稳定,但我不确定您是否能得到一个ITextBuffer,因为您的分析器通常在没有为给定文件打开编辑器时运行,因此没有为它创建任何ITextBuffer

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56687121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档