30

» WarCraft 3 / Visual Studio Code: WarCode

На самом деле я тоже не понял суть того примера с .js файлом.
Внутри строки js подсветка html. Тобишь langiage injection, а не разбор строки.
30

» WarCraft 3 / Visual Studio Code: WarCode

Vlod, ты внимательно пример смотрел? Глазами?
Я так понимаю, что тебе от IDE нужно только наведение и выделение?
30

» Блог им. TerrorGold / Представление о маге

Immortal_Zodd, где ты это встречал? Я вот встречал совершенно противоположное.
Может дело в месте встречи и лопате?
30

» WarCraft 3 / Повышение характеристик юнита за убийства

Хотя это можно считать и без таблицы вовсе, смыл ровно тот же.
Можно банально писать в CustomValue, использовать UnitIndexer или если такой герой у игрока один, то паралельные массивы по индексу игрока.
Только вот ХТ это самый оптимальный и расширяемый метод. В связке с типом key получается довольно таки мощно.
30

» Блог им. TerrorGold / Представление о маге

Ты мне мозг пытаешься вынести? Или бомбёжку вызвать?
Я не пойму, почему в фентези не может быть разных магов?
30

» WarCraft 3 / Повышение характеристик юнита за убийства

Почему сломается?!
У нас есть три юнита. Один получает силу, второй ловку, третий инту. Что будет с твоей переменной, если каждый из них убьёт юнита?
30

» WarCraft 3 / Visual Studio Code: WarCode

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

» WarCraft 3 / Visual Studio Code: WarCode

Причем тут vscode?
js у обоих искоробочный. И правда, при чём здесь vscode?
Начать стоит с вопроса - причем тут ЯП?
И правда, мы же рунами на бересте пишем.
LSP сервер пишется на любом языке, хоть на lua хоть на go
Работать с апи ты тоже будешь на любом языке?
30

» WarCraft 3 / Visual Studio Code: WarCode

Почему другие языки офигенно работают в вскод, а у тебя какие-то великие беды.
Офигенно? Давай проедём простейший тест:

VSCode

IntelliJ

Загруженные файлы
30

» WarCraft 3 / Visual Studio Code: WarCode

Можно делать всё, что вздумается.
Например разметить многострочный токен?
Вот тебе простейший пример. В IntelliJ я сделал кастомный текст при сворачивании. Удачи сделать такое в VSCode.
А свобода выбора решений для кеширования и архитектуры - так это скорее плюс.
Ты не поверишь, в IntelliJ тоже свобода выбора, только помимо великого ничего как в вскоде есть искаропка, которая покрывает большинство случаев.
А потом может сразу на асм, ну её, эту цивилизацию
Логика просто шикарна. Вместо простого добавления языка в IDE ты предлагаешь сделать IDE из VSCode?
Загруженные файлы
30

» WarCraft 3 / Повышение характеристик юнита за убийства

SсRealm, на втором юните твоя система сломается.

При смерти юнита смотри кто убил и пиши в хэштаблицу по ключу юнита счётчик убийств. При достижении нужного количества обнуляй и добавляй стату.
30

» WarCraft 3 / Visual Studio Code: WarCode

А что значит унылости? Можно подробнее, интересно

ЯП

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

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

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

VSCode

IntelliJ

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

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

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

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

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

Проекты

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

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

Загруженные файлы
30

» WarRaft / IntelliJASS

Трудности возникли с первоначальным логотипом или уже с серпом и молотом?
Серп и молот это и есть первоначальный логотип. Я в официальной доке я что-то не нашёл ничего ему противоречащего.
да один фиг с каждой версией их всё больше, а старые чинятся неохотно.
Тут уже ничего не поделаешь, только вот на данный момент IntelliJ искаропки предоставляет больше плюшек, чем всё остальное вместе взятое.
30

» WarCraft 3 / Visual Studio Code: WarCode

Последние новости!

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

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

» Прочее / Сэмуайз Дидье покинул Blizzard

Если кратко, то он ушел без скандалов и т.д., всех в близзард любит
Правильно. А то вдруг он окажется белым цисгендерным мужиком-угнетателем.
30

» Блог им. TerrorGold / Нужна ли историческая логика в срдневековом фэнтези/романе?

ReiGyl, правильна! Даёшь эпические сражения миллионов конных арбалетчиков!
Ну а на сладкое можно насыпать повесточки. Много повесточки! Даже если действие происходит в мире однополых разумных ящеров, то среди них должны быть нетакусики, которых все угнетают. Которые превозмогая в одиночку наваливают угнетателям несмотря на здравый смысол.
30

» WarCraft 3 / Как отловить стан?

Часто происходят всякие нехорошие глюки, например юнит может остаться неуязвимым
навсегда
Воспроизводимый пример можно?
30

» WarCraft 3 / Нанесение урона триггерным способом

Карта на удержание и каждые 0.10 сек проверяется, равно ли количество убитых юнитов 0 чтобы запустить новую волну
Использовать событие смерти религия не позволяет?