Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Редактор кода для ZScript (WIP)
   Список разделов - Местечко мапперов и моддеров - Редактор кода для ZScript (WIP)Ответить
АвторСообщение
ZZYZX
= Colonel =
Next rank: - Commissar - after 16 pointsМодератор форума
4874

Doom Rate: 1.74

Posts quality: +1312
Ссылка на пост №1 Отправлено: 22.04.19 02:50:34
https://github.com/jewalky/ZZscript

На скриншоте к слову изображён код из ZForms, который я использую как раз потому, что там во всём проекте ни одного актора (которые не работают).
Как полностью заработает, перейду на исходник из gzdoom.pk3 :o

Пишу я это условно 2 недели на выходных (то есть конкретно по истории коммитов можно увидеть, ага)
Поэтому на данный момент много чего захардкожено и/или не работает.

Что работает:
1) полный парсер кода (не Default{}-блока, не стейтов, конкретно кода)
2) осмысленная подсветка синтаксиса на основании парсера кода
3) поиск разнообразных названий в коде (т.е. я пишу let a = self и это автоматически зарезолвится и подсветится при необходимости)

Что не работает:
Вот тут больше. Не работают акторы, не работает совмещение нескольких проектов (планируется окно как в GZDB — с выбором вадов или для начала хотя бы папок).
Что связано с тем, что я обычно хочу как минимум подключить GZDoom + свой скрипт, а иногда ещё и GZDoom + оригинальный мод + свой аддон.
Не работают свистелки и перделки (планируется выбор цветовой схемы и нормальные подсказки с цитатой части кода, а не как щас).
Не работает автодополнение (но планируется следующим после нормальных подсказок и перехода к объявлениям по ctrl+клику)

Как-то так в общем )
Не уверен на 100%, что допилю, но может кому-то будет интересно. Мне пока интересно :oops:
Может даже кто-нибудь не дай б-г поучаствовать захочет. Но на это я особо не надеюсь, там код довольно специфичный, да ещё и на C++...

Рейтинг сообщения: +2, отметил(и): StormCatcher77, Void Weaver
2 2 1
Void Weaver
- 1st Lieutenant -
Next rank: = 1st Lieutenant = after 166 points
1674

Doom Rate: 1.83

Posts quality: +494
Ссылка на пост №2 Отправлено: 22.04.19 18:42:57
А можно чуть конкретизировать для тех кто "в танке" что это за тулза: это типа редактор самого кода порта или просто удобный редактор для зскрипт кодинга модов?
1 7 1
Anto96WS
= Master Corporal =
Next rank: - Sergeant - after 11 points
279

Doom Rate: 1.79

Posts quality: +83
Ссылка на пост №3 Отправлено: 22.04.19 18:44:31
> Редактор кода на ZScript
Как я был заинтересован... А оказался редактор, написанный не НА ZScript, а просто редактор ZScript :ha:

Как насчет перехода на Scintilla?
Неплохой такой движок для текстовых редакторов (на нем, например, основан Notepad++)

Scintilla (Википедия)

Добавлено спустя 5 минут 40 секунд:

Void Weaver пишет:
просто удобный редактор для зскрипт кодинга модов

По скрину видно
Void Weaver
- 1st Lieutenant -
Next rank: = 1st Lieutenant = after 166 points
1674

Doom Rate: 1.83

Posts quality: +494
Ссылка на пост №4 Отправлено: 22.04.19 18:56:41
Видно для тех кто шарит, остальные же и спрашивают.
Спс за пояснение.
1 7 1
ZZYZX
= Colonel =
Next rank: - Commissar - after 16 pointsМодератор форума
4874

Doom Rate: 1.74

Posts quality: +1312
Ссылка на пост №5 Отправлено: 22.04.19 19:14:55
Anto96WS пишет:
Как насчет перехода на Scintilla?

В курсе, резко против. Это довольно кривая внешняя зависимость. Достаточно посмотреть что произошло с редактором скриптов GZDB при обновлении с 32 на 64бит, а до этого с DB2 на GZDB.
Если вкратце, то ещё макседом при поднятии версии внезапно сломалось сворачивание/разворачивание функций, а когда добавили 64бит то пришлось поднимать версию сцинтиллы ещё раз и чуть не сломалось вообще всё.

Мне в принципе несложно написать пару лишних строчек кода и получить тот же функционал, но в разы надёжнее (во-первых, не меняющийся по левой пятке стороннего девелопера, а во-вторых тесно интегрированный в парсер).
В конце-концов, что такое сцинтилла?
  • подсветка синтаксиса — уже есть;
  • разворачивание блоков — написать примерно час, причём основное время на состыковку блоков (пары {}, (), []), и это можно будет использовать для подсветки парных скобок потом;
  • список номеров строк — написать примерно полчаса;
  • автодополнение — а это в любом случае писать с нуля: оно должно быть осмысленное, то есть в контексте, а не какое попало. но, писать не очень долго — редактор уже понимает "текущий токен".


Пожалуй из сложных вещей есть только много курсоров — но это не критично для редактора зскрипта, в общем-то.
А, ну и буфер изменений (undo/redo) сейчас своеобразно работает (не работает), но и до него руки дойдут ещё.

Ответ развёрнут, потому что я действительно думал, использовать сцинтиллу или нет. Подумал-подумал и как-то нет :o


з.ы. поменял название темы, чтобы очевиднее было )
2 2 1
Страница 1 из 1Перейти наверх
   Список разделов - Местечко мапперов и моддеров - Редактор кода для ZScript (WIP)