Notepad++ Jass Highlighter
|
|
Ty3uK | Дата: Вторник, 21 Февраля 2012, 16:55:55 | Сообщение # 1 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Добрый день всем, кто интересуется комфортным написанием кода! Не столь давно мы с SirNikolas писали подсветку для сайта, и мне пришла в голову мысль: а почему бы не адаптировать ее под весьма популярный текстовый редактор Notepad++. Если кто-то еще не знает про это бесплатное детище, то советую пройти по ссылке, которую я дал выше и скачать его. Немного провозившись (примерно 45-60 минут), я закончил скрипт подсветки. Скачиваем файлы (ссылки я дал внизу): userDefineLang.xml кидаем в папку C:\Documents and Settings\user\Application Data\Notepad++\ (у вас могут быть другие пути относительно буквы диска, т.е. не C:\, а, например, E:\). Копирование файлов подразумевает, что у вас видимы скрытые папки и файлы. Если же нет, то включаем эту видимость (в проводнике нажимаем Сервис -> Свойства папки... -> Вид -> Показывать скрытые файлы и папки). Далее помещаем файл jass.xml в папку C:\Program Files\Notepad++\plugins\APIs\ (опять же не забываем про относительность пути для разных дисков). Все, скрипт готов к использованию. Он автоматически подсветит содержимое файлов в формате .j и .ai, для того, чтобы подсветить содержимое вручную, нажимаем Синтаксис -> Jass. Так же скрипт имеет функцию автодополнения функций (кто использовал JNGP, поймут меня), но автоматически он этого делать не может. Печаль, но приходится пользоваться сочетанием клавиш Ctrl + Space. Для включения автоматики поставьте радиокнопку "Опции -> Настройки -> Резерв/Автозавершение -> Завершение функций". Но работает как часы. Из минусов: инструкции препроцессора vJass (//!) светит как комменты. Ну и порция скриншотов ^_^
Jass Highlighter for AkelPad
Адаптация скрипта под редактор AkelPad. Он порадовал меня больше, т.к. я не нашел в нем никаких ограничений. Из плюсов - светит все, автозаполнение без костылей из лишних нажатий кнопок, светит текстмакросы, константы и vJass-плюшки. Из недостатков - равкоды он не подчеркивает, но это мелочь.
|
|
|
|
SirNikolas | Дата: Вторник, 21 Февраля 2012, 17:25:14 | Сообщение # 2 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Сам давно юзаю самопальный подсветчик для npp. Правда, в нем минимум функционала, только ключевые слова, типы и всякие синие слова, вроде null true false this.Замени на консты. Гораздо полезнее будет. И добавь еще подсветку структуры фигурных скобок (закрыть/открыть блоки слева от области редактирования кода).Добавлено (21 Февраль 2012, 17:22:42) ---------------------------------------------
Quote (Ty3uK) onInit onDestroy create destroy allocate deallocate evaluate execute super name SCOPE_PREFIX SCOPE_PRIVATE create allocate() .evaluate() .execute() .exists Все это должно быть синим, а не жирным.Добавлено (21 Февраль 2012, 17:25:14) --------------------------------------------- А еще его вводят в ступор многострочные комменты.
|
|
|
|
Ty3uK | Дата: Вторник, 21 Февраля 2012, 18:02:46 | Сообщение # 3 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Понял, исправлю Добавлено (21 Февраль 2012, 18:02:46) --------------------------------------------- Блокнот полон неожиданностей- у него оказалось ограничение на количество букв в блоке, поэтому пока приходится чем-то жертвовать. Сделаю две версии- в одной не будет части бж, но все константы. В другой все бж, но без констант вообще. Возможно смогу исправить ситуацию через яваскрипт. Погляжу
|
|
|
|
Brut@lus | Дата: Вторник, 21 Февраля 2012, 18:10:48 | Сообщение # 4 |
Группа: Заблокированные
Сообщений: 2496
Награды: 1
Репутация: 924
Блокировки:
| Ty3uK, ТЫ МОЙ БОГ :pray: Как давно я такое искал C:
|
|
|
|
Ty3uK | Дата: Вторник, 21 Февраля 2012, 18:43:07 | Сообщение # 5 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Пользуйтесь. Поправил многострочные комментарии. Ломаю голову над константами
|
|
|
|
DragoN | Дата: Вторник, 21 Февраля 2012, 19:19:31 | Сообщение # 6 |
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
| Quote (Brut@lus) Ty3uK, ТЫ МОЙ БОГ pray Как давно я такое искал C: orly? 2007 год свои комменты высказал в аську (:
El Psy Congroo
|
|
|
|
Brut@lus | Дата: Вторник, 21 Февраля 2012, 20:36:06 | Сообщение # 7 |
Группа: Заблокированные
Сообщений: 2496
Награды: 1
Репутация: 924
Блокировки:
| DragoN, кэп подсказывает...Quote vJASS Syntax Highlighter Quote (Ty3uK) Jass Highlighter
|
|
|
|
Ty3uK | Дата: Вторник, 21 Февраля 2012, 20:52:57 | Сообщение # 8 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Мой светит vjass, cjass, Jass2 конструкции. И зинк вроде бы тоже
|
|
|
|
Brut@lus | Дата: Вторник, 21 Февраля 2012, 21:18:03 | Сообщение # 9 |
Группа: Заблокированные
Сообщений: 2496
Награды: 1
Репутация: 924
Блокировки:
| 0_о. Ты вообще рул.
|
|
|
|
Ty3uK | Дата: Вторник, 21 Февраля 2012, 21:43:45 | Сообщение # 10 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Да там реально ничего сложного. Да и проблем с ней, как видишь хватает -_-
|
|
|
|
Андреич | Дата: Среда, 22 Февраля 2012, 07:48:49 | Сообщение # 11 |
7 уровень
Группа: Проверенные
Сообщений: 363
Награды: 0
Репутация: 138
Блокировки:
| Ty3uK, что сказать... молодец..)
"не психуй - пиши на гуй..."
|
|
|
|
llka | Дата: Среда, 22 Февраля 2012, 12:43:04 | Сообщение # 12 |
4 уровень
Группа: Пользователи
Сообщений: 88
Награды: 0
Репутация: 34
Блокировки:
| Туз молодец, но зачем, все равно без вара правильность кода не провертшь а опытные жассеры и в обычном блокноте грамотно напишут жасс код.
|
|
|
|
[DS] | Дата: Среда, 22 Февраля 2012, 12:54:41 | Сообщение # 13 |
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
| Ty3uK, давно до этого юзал AkelPad, все в настройках можно сделать, чтобы подсвечивался
|
|
|
|
Ty3uK | Дата: Среда, 22 Февраля 2012, 13:38:44 | Сообщение # 14 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Обновил. Пофиксил многострочные комментарии
llka, подсветка просто помогает не так сильно напрягать глаза (серый код это нечто) [DS], у каждого свои любимые проги. На АкелПад я,бтв, тоже позарился
Сообщение отредактировал Ty3uK - Среда, 22 Февраля 2012, 14:14:30 |
|
|
|
DragoN | Дата: Среда, 22 Февраля 2012, 16:00:10 | Сообщение # 15 |
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
| Quote (Brut@lus) DragoN, кэп подсказывает... а чем vJass исключает наличие обычного Jass? просто добавлены соответствующие конструкцииДобавлено (22 Февраль 2012, 16:00:10) --------------------------------------------- Ty3uK, у тебя макросы не криво подсвечивает?
El Psy Congroo
|
|
|
|
-AL- | Дата: Среда, 22 Февраля 2012, 16:07:18 | Сообщение # 16 |
3 уровень
Группа: Проверенные
Сообщений: 53
Награды: 0
Репутация: 64
Блокировки:
| Ty3uK, Весьма полезно. Сам вот в скором времене хочу начать Jass изучать, а нотепадом пользуюсь уже давно, так что там будет легче.)
↓ Кликните.)
|
|
|
|
Ty3uK | Дата: Среда, 22 Февраля 2012, 19:35:04 | Сообщение # 17 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| DragoN, криво, светит как комменты Добавлено (22 Февраль 2012, 17:01:53) --------------------------------------------- Сел писать подсветку для AkelPad, ждите обновления Добавлено (22 Февраль 2012, 19:35:04) --------------------------------------------- Обновил первый пост. Добавил поддержку AkelPad
|
|
|
|
[DS] | Дата: Среда, 22 Февраля 2012, 19:36:33 | Сообщение # 18 |
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
| я ж говорил
|
|
|
|
SirNikolas | Дата: Среда, 22 Февраля 2012, 19:37:37 | Сообщение # 19 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Про thistype забыл.
|
|
|
|
Ty3uK | Дата: Среда, 22 Февраля 2012, 19:59:48 | Сообщение # 20 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Как это забыл? D:
|
|
|
|
SirNikolas | Дата: Среда, 22 Февраля 2012, 20:39:12 | Сообщение # 21 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| В npp его нет. Кстати, с препроцессором перемудрил. Далеко не все, что начинается с //!, является парным. Насколько я помню, только textmacro/endtextmacro, zinc/endzinc и externalblock/endexternalblock. Напоминаю про фигурные скобки. В AkelPad'е не подсвечиваются фишки условной трансляции cJASS (#if/#elseif/#else/#endif, #for/#endfor, #error, #guard). flush locals -> keywords DEBUG_MODE -> constants Можешь еще сделать, чтобы доллар перед числами был синим, а перед буквами - коричневый и не жирный (жирный плохо выглядит)?Добавлено (22 Февраль 2012, 20:39:12) --------------------------------------------- В дополнение к вышесказанному. 0x123abcdef - реально ли заставить редакторы представлять это как число?
|
|
|
|
Ty3uK | Дата: Среда, 22 Февраля 2012, 21:05:12 | Сообщение # 22 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Так. Макросы исправлю. Насчет доллара- попробую, но особых гарантий насчет избирательности к следующему символу. Еще раз большое спасибо за то, что всегда помогаешь найти ошибки :3 Добавлено (22 Февраль 2012, 20:45:15) --------------------------------------------- Насчет хекс-чисел - попробую. Возможно, завтра выложу Добавлено (22 Февраль 2012, 21:05:12) --------------------------------------------- Слушай, так в jngp же как макрос начинает светится все, что после //!
|
|
|
|
SirNikolas | Дата: Четверг, 23 Февраля 2012, 15:17:20 | Сообщение # 23 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (SirNikolas) Насколько я помню, только textmacro/endtextmacro, zinc/endzinc и externalblock/endexternalblock. novjass/endnovjass, inject/endinject. Вспомнил.Quote (Ty3uK) Слушай, так в jngp же как макрос начинает светится все, что после //! Да, но как парная структура должно подсвечиваться только вышенаписанное.Quote (SirNikolas) #if/#elseif/#else/#endif, #for/#endfor, #error, #guard В принципе, сюда же можно добавить все остальные команды cJASS, а именно: #define, #enddefine, #enum, #endenum, #include, #setdef, #undef. Эти можно употрелять и без решетки, но многим удобнее так.
Будешь смеяться, но Notepad++ не подсвечивает array.Quote (AkelPad) Code 1 2 #AA5500 0 ~ 1 2 #AA5500 0 ^ 1 2 #AA5500 0 % 1 2 #AA5500 0 ? В JASS отсутствуют эти символы.Quote (AkelPad) Code 1 0 #0000AA 0 allocate() 1 0 #0000AA 0 .evaluate() 1 0 #0000AA 0 .execute() 1 0 #0000AA 0 .exists Убери точки и скобки, а то они не подсвечиваются. И добавь destroy super name getType typeid.
|
|
|
|
Ty3uK | Дата: Четверг, 23 Февраля 2012, 16:06:50 | Сообщение # 24 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Хорошо. Насчет парных макросов- оставлю как есть, ибо придется дописывать вариации, а особого смысла я не вижу, ведь и так все работает. Ключевые слова поправлю. Насчет хекс-чисел - не смог сделать, сказывается недостаточная гибкость конфига подсветки остальное учту, еще раз спасибо
|
|
|
|
SirNikolas | Дата: Четверг, 23 Февраля 2012, 16:23:55 | Сообщение # 25 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (Ty3uK) Насчет парных макросов - оставлю как есть Тогда уж совсем убери подсветку их структуры.
|
|
|
|