是否有在Visual Studio 2017中实现自定义语言扩展(文本DSL)的示例,并支持" GoTo定义"? VisualStudioWorkspace
似乎没有足够的灵活性来支持通用符号表(即不支持C#或VB)。
Visual Studio Code支持自定义语言的GoTo定义。
支持" GoTo定义"在Java for Visual Studio中JavaIntellisenseController.GoToSourceImpl()
,似乎并没有实际解析Java符号。
Roslyn实现抽象方法Microsoft.VisualStudio.LanguageServices.VisualStudioWorkspace.TryGoToDefinition()
,但此API使用特定于.NET语言的类型,如Microsoft.CodeAnalysis.ISymbol
。
还有其他方法,可能使用自定义Workspace
类吗?
答案 0 :(得分:0)
构建一个language server看起来很快就会成为从头开始在Visual Studio中构建自定义语言支持的有用替代方法。 Visual Studio正在为语言服务器提供一个新的实验工具,可在预览here中使用。使用C#构建的语言服务器示例可从Microsoft和OmniSharp获得。后者看起来像是在C#中构建语言服务器的通用脚手架。
这个答案并没有指向Visual Studio的自定义语言实现的工作开源示例,其中包含" GoTo定义"支持,如所提出的,但它提供了一个更可行的替代方案。关于重用VisualStudioWorkspace
的问题没有实际意义;语言服务器维护自己的工作空间状态。
语言服务器不实现语法突出显示。 VS Code使用TextMate grammar进行语法突出显示。但是hints language server protocol将来可以从http://myjenkins.com获得更精确的语法突出显示。