如何从VS Code Extension获取Csharp语法树?

时间:2018-07-08 10:45:00

标签: visual-studio-code vscode-extensions omnisharp

是否可以通过我自己的VS代码扩展与CSharp语法树进行交互?我有一个在Visual Studio中做的扩展,使用Roslyn语法树来执行各种代码编辑和排序任务,我想将其迁移到VS Code。

我天真的假设是,如果我可以通过进入Omnisharp VS Code Extension来访问OmnisharpServer对象,那么我也许可以从那里获取相关信息。我可以通过以下方式访问扩展本身:

  let csextension = vscode.extensions.getExtension('ms-vscode.csharp')

但是扩展本身并没有公开太多,所以我想知道这是否是正确的方法吗?如果是这样,我如何从自己的扩展名访问正在运行的服务器?

我唯一的其他策略是运行一个使用Roslyn进行分析的.net核心exe,但这似乎在重复一个必须在堆栈中某个地方解决的问题。

1 个答案:

答案 0 :(得分:0)

我认为如果不通过Omnisharp VSCode Extension /它的扩展API(除非服务器可能实现一些自定义接口),没有任何方法可以做到这一点。如果尚不存在API,则可以考虑在issue tracker上创建功能请求?