Для подсветки кода лучше всего подходит синтаксис EmmyDoc, плагин с которым есть для Visual Studio Code и IntelliJ IDEA.
Для начала сконвертируйте файлы разметки с помощью cJass2Lua или просто скачайте архив.

Visual Studio Code

  • Перезагружаемся "Win+R -> shutdown -r -t 0"
  • Утанавливаем EmmyLua
  • Открываем %username%\.vscode\extensions\tangzx.emmylua-0.2.6\res\std в проводнике
  • Копируем туда файлы разметки
  • Перезапускаем редактор
  • Сохраняем файл с разрешением .lua и наслаждаемся

Так же можете воспользоваться способом пользователя prog, описанным в этом комментарии.

IntelliJ IDEA

  • Открываем дополнения и устанавливаем EmmyLua
  • Если хотите отключить всё лишнее, то снимите галку со всех плагинов кроме следующих:
  • Создаём новый lua проэкт
  • Нажимаем Ctrl+Alt+Shift+S
  • Указываем путь к файлам разметки
  • Создаём файл с разрешением .lua и наслаждаемся
`
ОЖИДАНИЕ РЕКЛАМЫ...
24
Для вскода тогда уж лучше lua-language-server от sumneko плюс файлы нативок из варианта для EmmyLua.
Ну и что-то вроде warcraft-vscode или один из его аналогов, чтобы напрямую с картой работать, раз уж статья в разделе варкрафта, а не чистого Lua.
30
плюс файлы нативок из варианта для EmmyLua
Как эти файлы туда засунуть, если по пути %userprofile%\.vscode\extensions\sumneko.lua-0.9.12\syntaxes лежит только lua.tmLanguage.json непонятного содержания.
Ну и что-то вроде warcraft-vscode или один из его аналогов
Я их ещё не тестил, как проверю, обязательно добавлю.
Загруженные файлы
24
Как эти файлы туда засунуть
Я пока просто складываю их в папку проекта отдельно от исходников и открываю один раз перед началом работы чтобы их распарсило. Но, скорее всего, где-то аналогичным образом можно указать путь к таким файлам.
30
Добавил VSCode-EmmyLua, чей подход к расширяемости оказался круче всех.

Так же попробовал Atom, Eclipse и ZeroBrane . Там с добавлением своих функции вообще ужас.
24
NazarPunk, эммилуа это хорошо, но ланг сервер от сумнеко дает чуть больше возможностей, чем просто эммилуа, нужно только разобраться как ему скормить внешние нативки.
И даже больше - там явно внутри есть даже своя либа под jass нативки, как оказалось, осталось понять как её подключить, выяснить насколько она актуальная и при необходимости выдать парсером данные в нужном формате и скормить туда.
30
эммилуа это хорошо
Мне в нём нравится, что по Ctrl+Click можно перейти к коду функции.
ланг сервер от сумнеко дает чуть больше возможностей, чем просто эммилуа, нужно только разобраться как ему скормить внешние нативки.
Если кто разберётся, то с удовольствием добавлю. У людей должен быть выбор)
Загруженные файлы
24
Мне в нём нравится, что по Ctrl+Click можно перейти к коду функции.
Ну так ланг-сервер умеет это и еще чуть-чуть больше потому как включает в себя эммилуа)
Пока нашел временное, но вполне рабочее решение - складывать файлы common.lua и blizzard.lua куда-нибудь в воркспейсе но так чтобы их собиралка карты не подхватывала. Например, если собиралка берет код из src, то создать папку libs рядом с src и сложить туда.
И после этого в воркспейсе или глобально подровнять конфиг "Lua.workspace.preloadFileSize" поставить вместо стандартных 300 достаточно большое число чтобы хватило на наши файлы, я поставил 600. Все, после этого не нужно даже руками открывать эти файлы чтобы их подхватило. Единственный минус - если проектов несколько, то для каждого нативки отдельно обновлять придется при обновах вара.

Ну и да, кстати, все что делается в "%userprofile%\.vscode\extensions\" подвержено риску быть потеряным при обнове плагина т.к. по хорошему туда не положено лезть руками.

Ну и если лень искать - линка на плагин.
30
Ну так ланг-сервер умеет это и еще чуть-чуть больше потому как включает в себя эммилуа)
В EmmyDoc он не умеет. Все lua функции захардкожены в регулярках
Так что проще юзать EmmyLua и не париться.
Ну и да, кстати, все что делается в "%userprofile%\.vscode\extensions\" подвержено риску быть потеряным при обнове плагина т.к. по хорошему туда не положено лезть руками.
Если бы сделали удобную натройку, как в IntelliJ, никто бы туда ручками не лез. А при обнове вара всёравно туда новые файлы кидать придётся)
Загруженные файлы
24
NazarPunk, тебе показалось...
Единственное что - дополнительные текстовые комментарии из эмми-документации мне пока не удалось заставить его показывать, но это хз автор недоработал или я чего-то не понимаю в том как должен эмми-луа работать.
Загруженные файлы
30
тебе показалось...
Перезапустил редактор и начал уметь. Нашёл где плагин подсказки хранит.
А ещё оказалось, плагин под jass затачивали.
Загруженные файлы
24
NazarPunk, про наличие там либы под jass я тебе говорил, но мне не удалось её заставить подключиться и работать. Подсказки там только для луа нативок и я не уверен стоит ли с ними связываться, если можно просто то что есть пихать в воркспейс.

Из фич которые нравятся мне и которых я что-то не видел в эмми-луа - контекстное переименование функций и переменных, поиск всех использований функции или переменной, возможность сделать peek, а не только переход.
30
prog, всё это есть в IntelliJ, даже более-менее нормальные настройки автоформтирования кода
И удобная подсветка параметров
Загруженные файлы
24

Что мне НЕ нравится и что я не проверял на чистом эмми-луа в вскоде - отсутствие поддержки мульти-воркспейса - это когда один воркспейс содержит в себе несколько папок рут уровня, не связанных между собой. Если бы эта фича была, то можно было бы держать одну копию файлов с нативками и в воркспейс карты добавлять их просто через добавление папки в воркспейс.
Почему мне не нравится идея совать жасс нативки прямо в плагин, а не на уровне воркспейса проекта - я работаю с Lua и на проектах не связаных с варом и там мне нативки жасса ну вот совсем не упали.

подсветка параметров
Есть и тут.
всё это есть в IntelliJ
А если я не хочу IntelliJ?
30
А если я не хочу IntelliJ?
На вкус и цвет все фломастеры разные.

Зато там можно указать SDK для проэкта и выбирать себе любой набор нативок по вкусу.
Загруженные файлы
24
NazarPunk, я бы вобще в нетбинсе работал, были бы к нему нужные плагины, а именно - сборка карты. Что там в идее - мне не особо интересно, я сравниваю то что я вижу в вскоде с чистым эммилуа и с лангсервером включающим в себя и эммилуа и дополнительные плюшки и второй вариант мне нравится больше.
30

Обновлены файлы разметки

Пофикшены многие недочёты, и добавлен common.ai.lua.
24
common.ai.lua
Ошибки в именах параметров в документации
GetCreepCamp
SuicidePlayer
SuicidePlayerUnits
CaptainInCombat
GetUnitCountEx
TownCountEx
BasicExpansion
StartUnit
SingleMeleeAttack
Еще мелькает null в нескольких местах - 2757, 2797 и 3044 строка

blizzard.j
code - нигде не обьявлен
null в 12288 строке

common.j
integer - дублирование класса
code - нигде не обьявлен
30
Обновил файлы разметки на сконвертированные с помощью cjass2lua.
11
Странно, но актуальная сейчас IntelliJ 2019.3 не ставит lua . Может у кого-то возникла такая же проблема. Поставил 2018.3 все отлично работает.
30
Странно, но актуальная сейчас IntelliJ 2019.3 не ставит lua
2019.3 много чего не ставит, хотя репозиторий обновили
Загруженные файлы
23
А где вы берете common.lua и blizzard.lua?
В папке с рефоржем их нет.
15
avuremybe:
А где вы берете common.lua и blizzard.lua?
В папке с рефоржем их нет.
CascView вытаскиваешь актуальные .j и конвертируешь их в Lua. С помощью этой утилиты
38
Сохрани себе куда-нибудь github.com/nazarpunk/cheapack/tree/master/sdk

С обновлениями актуализируем, если что.
25
У меня в IntelliJ IDEA периодически отваливается EmmyLua. Просто сыпет эксепшоны и не даёт писать код, пока не перезапустишь ide или не отключишь плагин. Пообновлял плагин и ide до последней версии, вроде стало реже, но всё равно бывает. В порядке предположения: мне кажется, что это происходит после того, как собираешь чипаком карту и запускаешь её в редакторе. Не каждый раз, но часто. Может кто сталкивался, есть какие советы/решения?
Чтобы оставить комментарий, пожалуйста, войдите на сайт.