VS Code — Расширение C# — Дальнейшее расширение

* ОБНОВЛЕНИЕ *

Ниже моего первоначального вопроса, но я узнал больше о расширениях VS Code.

Просматривая расширение OmniSharp C#, кажется, что в идеале я мог бы добавить некоторый готовый код до и после текста в редакторе кода VS, прежде чем произойдет проверка. Я искал хуки, где это можно было бы сделать, например, перед _validateOpenDocuments() в диагностикеProvider.ts. Элементы диагностики должны быть изменены, чтобы иметь правильное положение в коде редактора, вычитая вставленный стандартный код.

Не уверен, что кто-нибудь, знакомый с тем, как работает OmniSharp, может подсказать мне идею выше.

Спасибо, Энрике

У меня есть приложение (отлично работающее, написанное на C#), которое использует код C# в качестве языка сценариев для создания рисунков. У него есть собственный редактор кода, но я бы хотел использовать отличный VS Code в качестве внешнего интерфейса.

Ниже приведен очень простой допустимый скрипт:

NoLoop = true;

MP.SetBackgroundColor(72, 60, 0);
MP.SetPen(1, 3, 255, 255, 255, 64);

List<MathPoint> grid = MP.Sheet(200, 100, 200, 0.0, 0.0);

result = MP.Center(MP.Transform(grid, xS:+1.0, yS:-1.0, zR:+0.0), 0.0, 0.0, 2.0, 2.0);

Расширение OmniSharp C# отлично работает, и я хотел бы расширить его, чтобы оно лучше соответствовало моим потребностям.

1) Когда вы пишете скрипт в моем приложении, вам не нужно писать обертки пространства имен C#, классов и методов, они добавляются автоматически. Расширение C# жалуется на «Тип или определение пространства имен или ожидаемый конец файла..» в первой строке.

2) Моя оболочка также предопределяет некоторые элементы, такие как "bool NoLoop = false;" и "Список‹ MathPoint > результат = новый список‹ MathPoint >();" в примере. Расширение C#, очевидно, не знает об этом и не распознает эти элементы. Хотелось бы добавить для них поддержку IntelliSense.

3) Моя оболочка включает в себя другие пространства имен, которые делают доступными другие классы и методы, такие как "MP.Sheet(...)" и "MP.Center(...)" в примере. Также хотелось бы добавить поддержку IntelliSense.

Мой вопрос: есть ли способ установить расширение OmniSharp C#, а затем добавить к нему вышеуказанные функции, или мне нужно изменить код расширения OmniSharp C# и создать свою собственную вилку?

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

Заранее спасибо за любую помощь в этом, я новичок в VS Code Extensions.

Пример скрипта в VS Code


person ErcGeek    schedule 19.04.2020    source источник


Ответы (1)


Ответ на этот вопрос был дан здесь: https://github.com/OmniSharp/omnisharp-vscode/issues/3746

Спасибо

person ErcGeek    schedule 30.04.2020