* ОБНОВЛЕНИЕ *
Ниже моего первоначального вопроса, но я узнал больше о расширениях 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.