Подсветка синтаксиса

Материал из UoPilot
Версия от 11:36, 28 августа 2019; Tatikoma (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Описание

Позволяет выделить в редакторе разным цветом операторы и функции .
Цвета пока настраиваются только через конфиг пилота (в файле uopilot.ini) в секции [Highlighter].
Зарезервированные слова разделены на группы по смысловому назначению. Их цвета указываются в параметрах начинающихся со строки 'RW ' в формате : Background, Foreground, Style.

Синтаксис

Привязка к окну: Нет.
Работа со свернутым окном: Да.

<имя_группы_объектов>=<цвета_фона_под_объектом>,<цвет_объекта>,<стиль>

<имя_группы_объектов> - называние группы объектов. Список объектов:

Assembler=-16777211,0,0             // Зарезервировано.
Character=-16777211,0xAAAA00,0      // Числовые переменные.
Comment=-16777211,8388608,2         // Комментарии.
Float=-16777211,0xAAAAAA,0          // Дробные числа. Отключено.
Hexadecimal=-16777211,8388608,0     // Строковые переменные.
Identifier=-16777211,0,0            // Текст: пути, имена окон и почему-то имена массивов.
Number=-16777211,0xAAAAAA,0         // Числа в виде текста.
Preprocessor=-16777211,32768,2      // Зарезервировано.
Reserved Word=-16777211,0,1         // Неизвестно.
RW Array=-16777211,255,1            // Операторы работы с массивами. НЕ относится к самим массивам.
RW CharParam=-16777211,0,1          // Переменные чара UO.
RW ColorAndCord=-16777211,0,1       // Переменные цветов(clgreen, clblue и т.д.) и координат (defXabs, desktopheight и т.д.).
RW EndScript=-16777211,0,1          // end_script.
RW For=-16777211,0,1                // Циклы: for, while, repeat, continue, break.
RW Function=-16777211,0,1           // Функции. Все, что идет после set и перед скобками(findimage, findcolor, size,random и т.д.).
RW Get=-16777211,0,1                // Get и set.
RW If=-16777211,0,1                 // Условия IF, Switch.
RW Keyboard=-16777211,0,1           // Эмуляция клавиатуры.
RW LastObject=-16777211,0,1         // Переменные last* для UO.
RW Macros=-16777211,0,1             // Макросы.
RW Memory=-16777211,0,1             // readmem, writemem.
RW Mouse=-16777211,0,1              // Эмуляция мыши.
RW Msg=-16777211,0,1                // Log, msg, hint.
RW Other=-16777211,0,1              // Прочее. В т.ч.: clipboard, color, copy, delete, word, insert, number, posex, printscreen, indexof, injection. 
RW Plugin=-16777211,0,1             // Функции плагинов.
RW Proc=-16777211,0,1               // Работа с файлами, exec, terminate.
RW Script=-16777211,0,1             // Функции скриптов и переменные скриптов (active_script, priority и т.д.).
RW Sub=-16777211,0,1                // Подпрограммы и процедуры.
RW Time=-16777211,0,1               // Таймер, переменные даты.
RW Wait=-16777211,0,1               // linedelay, wait, waitfortarget.
RW Windows=-16777211,0,1            // Функции работы с окнами.
Space=-16777211,0,0                 // Пробелы и управляющие символы. Используется в основном для изменения фона.
String=-16777211,8388608,0          // 'текст в одиночных кавычках'.
Symbol=-16777211,0,0                // <>=,.() и т.д.

Полный список объектов: https://forum.uokit.com/index.php?s=&showtopic=28816&view=findpost&p=213600, первый спойлер.
<цвета_фона_под_объектом> - фон под текстом. В т.ч. цвет пробелов, т.к. пробелы не имеют как такового отображаемого объекта.
По умолчанию стоит цвет "-16777211"(с минусом) - это цвет соответствует цвету вашей темы в системе, независимо от того какая выбрана тема.
<цвет_объекта> - цвет текста. Задаётся в десятичном виде по RGB.
Цвет так же можно задать цвета в шестнадцатеричном виде 0xFFFFFF, однако уже почему в формате BGR.
Так же после перезапуска значение будет перезаписано в виде десятичного.
Тем не менее для настройки намного удобнее, чем сидеть с калькулятором и считать каждый раз десятичные цвета.
<стиль> - список стилей:

0  - обычный.
1  - полужирный.
2  - курсив.
3  - полужирный+курсив.
4  - подчеркнутый.
5  - подчеркнутый+полужирный.
6  - подчеркнутый+курсив.
7  - подчеркнутый+курсив+полужирный.
8  - зачеркнутый.
9  - зачеркнутый+полужирный.
10 - зачеркнутый+курсив.
11 - зачеркнутый+курсив+полужирный.
12 - зачеркнутый+подчеркнутый.
13 - зачеркнутый+подчеркнутый+полужирный.
14 - зачеркнутый+подчеркнутый+курсив.
15 - зачеркнутый+подчеркнутый+курсив+полужирный.

Примеры

Изменять строки нужно в файле uopilot.ini. Файл находится рядом с exe пилота.
If и Switch будут красным цветом:

RW If=-16777211,255,1

If и Switch будут красным цветом на голубом фоне:

RW If=16510357,255,1

If и Switch будут красным цветом на голубом фоне и подчёркнуты:

RW If=16510357,255,4

Смотрите также

Set
Массивы

История развития

2.22
Сделал подсветку синтаксиса в редакторе. Цвета пока настраиваются только через конфиг пилота в секции [Highlighter]. Зарезервированные слова разделены на группы по смысловому назначению. Их цвета указываются в параметрах начинающихся со строки 'RW ' в формате : Background, Foreground, Style.

   Style может принимать значения:
   0 - обычный;
   1 - жирный;
   2 - курсив;
   4 - подчеркнутый;
   8 - зачеркнутый;
   и их комбинации.

2.23
Перевел команду 'say' из группы 'msg' в группу 'keyboard' в подсветке синтаксиса.
Добавил в подсветку синтаксиса 'RW CharParam' (psysresist, fireresist, coldresist, poisresist, enerresist, luck, damage, hitsmax, manamax, stammax, wghtmax, damagemax, followers, followersmax), 'RW Keyboard' (getlayout, post), 'RW Script' (scripts).
Отключил подсветку паскалевских комментариев в стиле (* *)

2.32
Добавил новые операторы в подсветку синтаксиса:

CharParam: fireresist
ColorAndCord: desktopheight, desktopwidth, monitor, monitorheight, monitorwidth, screenheight, screenwidth
ColorAndCord: claqua, clblack, clblue, cldkgray, clfuchsia, clgray, clgreen, cllime, clltgray, clmaroon, clnavy, clolive, clpurple, clred
ColorAndCord: clsilver, clteal, clwhite, clyellow, colortorgb, colortored, colortogreen, colortoblue
Macros: macro_send
Keyboard: send217
Array: init_arr
Proc: dir, dircreate, dirremove, errorlevel, execandwait, filecopy, filedelete, fileexists, filegetattr, filegetdate, filerename, filesetattr, filesetdate
Msg: log
Other: copy, delete, insert, posex, indexof. 
Mouse: mousepos_x, mousepos_y, mouseposabs_x, mouseposabs_y
Function: windowfrompoint
Function: abs, round, floor, ceil, frac, sqrt, power, exp, ln, sin, cos, tan, arcsin, arccos, arctan, degtorad, radtodeg, trunc, pi
Function: minx, maxx, mean, mod, point_distance, point_direction, lengthdir_x, lengthdir_y, is_real, is_string, chr, ord
Function: string_replace, string_count, string_lower, string_upper, string_letters, string_digits, dayofweek, eval
Other: iniwrite, iniread, regwrite, regread, write
CharParam: shownames, transparency, pathfinding, criminalactions.

2.36
Добавил кучу всего в подсветку синтаксиса.

2.38
Сделал подсветку переменных массивов цветом соответствующих операторов.