Сейчас 05:35:52 Суббота, 20 апреля, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Раздел картостроителя » Notepad++ Jass Highlighter (Пишем код на коленке)
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-плюшки. Из недостатков - равкоды он не подчеркивает, но это мелочь.



Прикрепления: userDefineLang.xml (73.9 Kb) · jass.xml (347.6 Kb)


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Вторник, 21 Февраля 2012, 17:25:14 | Сообщение # 2
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Сам давно юзаю самопальный подсветчик для npp. Правда, в нем минимум функционала, только ключевые слова, типы и всякие синие слова, вроде null true false this.
Quote (Ty3uK)
бж
Замени на консты. Гораздо полезнее будет. :)
И добавь еще подсветку структуры фигурных скобок (закрыть/открыть блоки слева от области редактирования кода).

Добавлено (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)
---------------------------------------------
Блокнот полон неожиданностей- у него оказалось ограничение на количество букв в блоке, поэтому пока приходится чем-то жертвовать. Сделаю две версии- в одной не будет части бж, но все константы. В другой все бж, но без констант вообще. Возможно смогу исправить ситуацию через яваскрипт. Погляжу


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

Brut@lusДата: Вторник, 21 Февраля 2012, 18:10:48 | Сообщение # 4
Группа: Заблокированные
Сообщений: 2496
Награды: 1
Репутация: 924
Блокировки:
Ty3uK, ТЫ МОЙ БОГ pray :pray: Как давно я такое искал C:

 

Ty3uKДата: Вторник, 21 Февраля 2012, 18:43:07 | Сообщение # 5
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Пользуйтесь. Поправил многострочные комментарии. Ломаю голову над константами

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

DragoNДата: Вторник, 21 Февраля 2012, 19:19:31 | Сообщение # 6
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
Quote (Brut@lus)
Ty3uK, ТЫ МОЙ БОГ pray 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 конструкции. И зинк вроде бы тоже

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

Brut@lusДата: Вторник, 21 Февраля 2012, 21:18:03 | Сообщение # 9
Группа: Заблокированные
Сообщений: 2496
Награды: 1
Репутация: 924
Блокировки:
0_о.
Ты вообще рул.


 

Ty3uKДата: Вторник, 21 Февраля 2012, 21:43:45 | Сообщение # 10
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Да там реально ничего сложного. Да и проблем с ней, как видишь хватает -_-

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

АндреичДата: Среда, 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], у каждого свои любимые проги. На АкелПад я,бтв, тоже позарился


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек


Сообщение отредактировал 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


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

[DS]Дата: Среда, 22 Февраля 2012, 19:36:33 | Сообщение # 18
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
я ж говорил
nate


 

SirNikolasДата: Среда, 22 Февраля 2012, 19:37:37 | Сообщение # 19
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Про thistype забыл.

 

Ty3uKДата: Среда, 22 Февраля 2012, 19:59:48 | Сообщение # 20
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Как это забыл? D:

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

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 же как макрос начинает светится все, что после //!


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|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
Блокировки:
Хорошо. Насчет парных макросов- оставлю как есть, ибо придется дописывать вариации, а особого смысла я не вижу, ведь и так все работает. Ключевые слова поправлю. Насчет хекс-чисел - не смог сделать, сказывается недостаточная гибкость конфига подсветки :( остальное учту, еще раз спасибо

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Четверг, 23 Февраля 2012, 16:23:55 | Сообщение # 25
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Ty3uK)
Насчет парных макросов - оставлю как есть
Тогда уж совсем убери подсветку их структуры.


 

Форум о Warcraft 3 » Раздел для картостроителей » Раздел картостроителя » Notepad++ Jass Highlighter (Пишем код на коленке)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz