将 Roslyn 用于 VS2015 自定义编辑器

Using Roslyn for VS2015 Custom Editor

我正在构建一个 Visual Studio 2015 自定义编辑器(不是代码编辑器扩展,一个完全自定义的 WPF 控件)来编辑 .cs 文件。我真的不确定在这里使用 .NET 编译 SDK 的正确方法是什么。

到目前为止我已经尝试过:

None 我现在所做的一切都感觉很干净。有没有更直接的方法来访问编辑器文档的编译器 API?

需要使用现有的常用工作区,否则您将得不到引用,更重要的是,也得不到预处理器符号(这会影响语法树的形状)。

请注意,VS 可以有几个不同的工作区,包括当前解决方案的主要 VisualStudioWorkspace,其他文件的 MiscellaneousFilesWorkspace,以及其他一些与调试器相关的工作区。 (full list)

我可能对你的问题的理解有误,但我会试一试。听起来您正在尝试查找给定文本缓冲区的 Roslyn 文档。

实际上有一整套扩展方法可以更轻松地弥合 Roslyn 和 Visual Studio 对象之间的差距。

参见:Microsoft.CodeAnalysis.Text.Extensions

虽然它们没有随 Microsoft.CodeAnalysis NuGet 包一起提供,但您必须通过以下方式安装它们:

Install-Package Microsoft.CodeAnalysis.EditorFeatures.Text -Version 1.0.0

给定 ITextSnapshotITextBuffer 这些方法将允许您将它们映射回原始 Roslyn 文档(如果存在)。

更多信息:https://joshvarty.wordpress.com/2015/07/06/lrn-quick-tip-bridging-visual-studio-and-roslyn/