Visual Studio Code: WarCode

Добавлен , опубликован
Программы
Предназначение:
Работа с кодом

WarCode

Расширение для VSCode, позволяющее работать с чистым и незамутнённым jass.
Основано на библиотеке Chevrotain, поиграться с которой можно здесь.
Грамматики основаны на jassjs, только значительно улучшены.

.j

JASS лексика полностью описана. Синтаксически неверный код будет выдавать ошибки.
Все блоки размечены для более удобной навигации.
Остальные фичи будут постепенно дорабатываться.

.zn

Так как ZINC не является основной целью этого расширения, то он будет только описан. Дополнительные фичи к нему будут разрабатываться только при спросе на них.
На данный момент, к примеру полностью отсутствует поддержка struct.

.wts

Написана новая грамматика для поддержки .wts.

.slk

Добавлен простой просмотр и примитивный редактор .slk.

Цветовая схема

Настройка собственной цветовой схемы прекрасно описана здесь.
Список токенов для применения цветов находится здесь.

Тестирование

Если вы используете расширения, наподобие ujass, то отключите их для директории, в которой производите тестирование. Так же отключите это расширение для ваших рабочих директорий.

Прекращение разработки

Ввиду абсолютной унылости VSCode было принято волевое решение сменить платформу.

Полезные ссылки

Поддержать проект

Можете просто поддержать XGM, мы с удовольствием проведём интересный конкурс на эти деньги.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
14
8 месяцев назад
Отредактирован host_pi
0
26.09.23
работа только с одним файлом war3map.j сильно упрощает жизнь. Так что, в принципе, я тогда тупо забью на импорт, и напишу отдельную обработку файлов с именем war3map.j. В таком случае сделать переименование именно по вхождению не так уж и сложно.
Так что, где-то через недельку ожидайте обновлений.
а мы вот ждём всем селом
0
29
8 месяцев назад
0
а мы вот ждём всем селом
Тут случился возможный js в варкрафте, посему можно будет воспользоваться конвертером, а там уже есть куча средств для рефактора.
Да и сейчас я геометрией занят.
1
37
8 месяцев назад
1
Прощайте фреймы, привет html5?)
0
29
6 месяцев назад
0
Последние новости!

Прекращение разработки

Ввиду абсолютной унылости VSCode было принято волевое решение сменить платформу.
1
24
6 месяцев назад
1
Ввиду абсолютной унылости VSCode было принято волевое решение сменить платформу.
А что значит унылости? Можно подробнее, интересно :D
3
29
6 месяцев назад
3
А что значит унылости? Можно подробнее, интересно

ЯП

Начнём пожалуй с выбора языка. У intelliJ типизированная java что только одной строгой типизацией заруливает унылый ts, насчёт которого у меня есть что сказать.
Ты конечно можешь юзать vanilla-js но первый отстрел жопы наступит при исользовании import. Так как вскода это Electron то использовать нужно только require. Оба эти метода несовместимы. А если хочется их совместить, то добро пожаловать в мир сборщиков:
Они все говно и это только вопрос времени, когда они отстрелят тебе жопу. Но из-за того, что в API обмназались enum тебе неизбежно придётся переходить на ts, где может возникнуть непреодолимое желание использовать родной сборщик tsc. Который тоже говно.
Ну и тут мы плавно переходим к использованию внешних либ.

Работа с кодом

Как обычно выглядит разбор кода:
  • Лексер
  • Парсер
  • Визитор
Сначала код размечается на токены. Из токенов собираются выражения. После всего этого строится дерево и визитор проходит по нему и делает всякое. Теперь сравни, какие средства предоставляет VSCode и IntelliJ для описание грамматики языка:

VSCode

IntelliJ

Но это ещё не всё. Думаешь VSCode даст тебе свободно походить по дереву? А вот фиг вам. У VSCode нет дерева. Оно просто подсвечивает токены по регуляркам. Хочешь дерева - строй сам!
Что приводит нас к использованию специально обученных библиотек. Что возвращает нас к проблемам сборки проектов.

Кодогенерация

В IntelliJ она встроена и является следствием использования общепринятого bnf который можно впоследствии переиспользовать где угодно. А теперь посмотри на это. Следствием чего оно является? Я же прям просто обожаю генерить жсоны.
У IntelliJ тоже существует xml. Можешь ощутить разницу.

Форматирование

Что есть форматирование? По сути это замена не значащих токенов таким образом, чтоб кожаным мешкам было проще его читать. В IntelliJ строится дерево форматирования, которое поззволяет определить кучу разных правил как душе угодно. Форматирование в вскоде просто выдаёт тебе содержимое файла и предлагает самому его отформатировать заменив прежнее содержимое. И потом заново строить дорогое дерево. И так со всем. На каждую правку фалйа строй дерево. Размечай токены и занимайся прочими непотребностями.

Проекты

Зачем нужны проекты? У вскоды нет проектов. У неё папки. А значит кэшем и индексированием тебе придётся заниматься самому. Отвратительную работу с Git припишем туда же.

Документация

Загруженные файлы
0
24
6 месяцев назад
0
nazarpunk хорош, спасибо)
А документация ну как обычно жиза :D
1
37
6 месяцев назад
1
Борьба Nazarpunk против быстрых современных решений)

Жду отстрел жопы jvm и переход на настоящий visual studio с её dll плагинами. А потом может сразу на асм, ну её, эту цивилизацию
0
14
6 месяцев назад
Отредактирован host_pi
0
ScorpioT1000: Борьба Nazarpunk против быстрых современных решений
тоже наблюдаю за этим сериалом
0
37
6 месяцев назад
0
Форматирование в вскоде просто выдаёт тебе содержимое файла и предлагает самому его отформатировать заменив прежнее содержимое. И потом заново строить дорогое дерево
Там в любом случае ты строишь либо всё, либо часть дерева заново, потому что файл может быть изменен в любом месте. А свобода выбора решений для кеширования и архитектуры - так это скорее плюс. Можно делать всё, что вздумается. Хоть встроить вскоды в вскод и мониторы в мониторы
0
29
6 месяцев назад
0
Можно делать всё, что вздумается.
Например разметить многострочный токен?
Вот тебе простейший пример. В IntelliJ я сделал кастомный текст при сворачивании. Удачи сделать такое в VSCode.
А свобода выбора решений для кеширования и архитектуры - так это скорее плюс.
Ты не поверишь, в IntelliJ тоже свобода выбора, только помимо великого ничего как в вскоде есть искаропка, которая покрывает большинство случаев.
А потом может сразу на асм, ну её, эту цивилизацию
Логика просто шикарна. Вместо простого добавления языка в IDE ты предлагаешь сделать IDE из VSCode?
Загруженные файлы
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.