Как получить дерево синтаксиса Csharp из расширения VS Code?

Можно ли взаимодействовать с деревом синтаксиса CSharp из моего собственного расширения кода VS? У меня есть расширение, которое я сделал в самой Visual Studio, которое использует дерево синтаксиса Roslyn для выполнения различных задач редактирования и сортировки кода, и я хочу перенести его на VS Code.

Мое наивное предположение состоит в том, что если я смогу получить доступ к объекту OmnisharpServer, подключившись к Omnisharp VS Code Extension, я смогу извлечь оттуда соответствующую информацию. Я могу получить доступ к самому расширению, позвонив:

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

Но само расширение мало что раскрывает, поэтому мне интересно, правильная ли это методология? Если да, то как мне получить доступ к работающему серверу из моего собственного расширения?

Единственная другая стратегия, которая у меня есть, - это запустить исполняемый файл .net core, который использует Roslyn для анализа, но это, похоже, дублирует проблему, которая должна быть решена где-то в стеке.


person Stephen Ellis    schedule 08.07.2018    source источник


Ответы (1)


Я не думаю, что есть способ сделать это без прохождения Omnisharp VSCode Extension / его API расширения (если, возможно, сервер не реализует какой-либо настраиваемый интерфейс). Если API еще не существует, вы можете рассмотреть возможность создания запроса функции в системе отслеживания проблем ?

person Gama11    schedule 09.07.2018