их может быть очень много и парсить все строки в проекте
Там не парсятся все строки. Там ты сам задаёшь, где в твоём языке может быть иньекция и сам определяешь инъекции в другие языки. Но основная фишка в том, что ты можешь написать плагин, который может влиять на другие плагины и добавлять к ним свой функционал. Для реализации такого веселья в вскоде нужно крутить сальтухи.
Начнём пожалуй с выбора языка. У intelliJ типизированная java что только одной строгой типизацией заруливает унылый ts, насчёт которого у меня есть что сказать.
Ты конечно можешь юзать vanilla-js но первый отстрел жопы наступит при исользовании import. Так как вскода это Electron то использовать нужно только require. Оба эти метода несовместимы. А если хочется их совместить, то добро пожаловать в мир сборщиков:
Они все говно и это только вопрос времени, когда они отстрелят тебе жопу. Но из-за того, что в API обмназались enum тебе неизбежно придётся переходить на ts, где может возникнуть непреодолимое желание использовать родной сборщик tsc. Который тоже говно.
Ну и тут мы плавно переходим к использованию внешних либ.
Работа с кодом
Как обычно выглядит разбор кода:
Лексер
Парсер
Визитор
Сначала код размечается на токены. Из токенов собираются выражения. После всего этого строится дерево и визитор проходит по нему и делает всякое. Теперь сравни, какие средства предоставляет VSCode и IntelliJ для описание грамматики языка:
VSCode
IntelliJ
Но это ещё не всё. Думаешь VSCode даст тебе свободно походить по дереву? А вот фиг вам. У VSCode нет дерева. Оно просто подсвечивает токены по регуляркам. Хочешь дерева - строй сам!
Что приводит нас к использованию специально обученных библиотек. Что возвращает нас к проблемам сборки проектов.
Кодогенерация
В IntelliJ она встроена и является следствием использования общепринятого bnf который можно впоследствии переиспользовать где угодно. А теперь посмотри на это. Следствием чего оно является? Я же прям просто обожаю генерить жсоны.
У IntelliJ тоже существует xml. Можешь ощутить разницу.
Форматирование
Что есть форматирование? По сути это замена не значащих токенов таким образом, чтоб кожаным мешкам было проще его читать. В IntelliJ строится дерево форматирования, которое поззволяет определить кучу разных правил как душе угодно. Форматирование в вскоде просто выдаёт тебе содержимое файла и предлагает самому его отформатировать заменив прежнее содержимое. И потом заново строить дорогое дерево. И так со всем. На каждую правку фалйа строй дерево. Размечай токены и занимайся прочими непотребностями.
Проекты
Зачем нужны проекты? У вскоды нет проектов. У неё папки. А значит кэшем и индексированием тебе придётся заниматься самому. Отвратительную работу с Git припишем туда же.
ReiGyl, правильна! Даёшь эпические сражения миллионов конных арбалетчиков!
Ну а на сладкое можно насыпать повесточки. Много повесточки! Даже если действие происходит в мире однополых разумных ящеров, то среди них должны быть нетакусики, которых все угнетают. Которые превозмогая в одиночку наваливают угнетателям несмотря на здравый смысол.
Ред. nazarpunk
» WarCraft 3 / Visual Studio Code: WarCode
» WarCraft 3 / Visual Studio Code: WarCode
Ред. nazarpunk
» Game Dev / Зелья Усиления - иконки от ИИ
» Блог им. TerrorGold / Представление о маге
» WarCraft 3 / Повышение характеристик юнита за убийства
» Блог им. TerrorGold / Представление о маге
» WarCraft 3 / Повышение характеристик юнита за убийства
» Game Dev / Зелья Усиления - иконки от ИИ
» WarCraft 3 / Visual Studio Code: WarCode
» Блог им. TerrorGold / Представление о маге
» WarCraft 3 / Visual Studio Code: WarCode
» Game Dev / Зелья Усиления - иконки от ИИ
» WarCraft 3 / Visual Studio Code: WarCode
VSCode
IntelliJ
» WarCraft 3 / Visual Studio Code: WarCode
» WarCraft 3 / Повышение характеристик юнита за убийства
» WarCraft 3 / Visual Studio Code: WarCode
ЯП
Работа с кодом
VSCode
IntelliJ
Кодогенерация
Форматирование
Проекты
Документация
» WarRaft / IntelliJASS
» WarCraft 3 / Visual Studio Code: WarCode
Прекращение разработки
» Блог им. TerrorGold / Нужна ли историческая логика в срдневековом фэнтези/романе?
» XGM Team / Онлайн-инструменты для геймдев и моддинг арта
» Прочее / Сэмуайз Дидье покинул Blizzard
» Блог им. TerrorGold / Нужна ли историческая логика в срдневековом фэнтези/романе?
» WarCraft 3 / Как отловить стан?
» WarCraft 3 / Нанесение урона триггерным способом
» WarCraft 3 / Как сделать разные загрузочные экраны для кампании и для карт?