; Автор AZJIO, 07.2019
; 05.10.20 добавил автозавершение
; 04.11.20 добавил iftitle
; 11.11.20 добавил пути, set

;----------------------------------------------;
;       Синтаксический файл Coder плагина       ;
;----------------------------------------------;

;Цвета
; Цвета должны быть представлены в формате #RRGGBB.
; Если цвет равен нулю, то цвет игнорируется.
;
;Стили шрифта
; 0  игнорировать.
; 1  обычный.
; 2  жирный.
; 3  курсив.
; 4  жирный курсив.
;
;Для комфортного просмотра/редактирования файла установите размер табуляции 8.


Files:
;===========
;Типы файлов
;===========
*.lst


;----------------------------------------------;
;                  HighLight - Подсветка                   ;
;----------------------------------------------;

;Флаги (сумма членов)
;     1  учитывать регистр.
;     2  словом является любая комбинация указанных символов (только для секции "Words:"). Пример: "0123456789" - подсвечивать числа.
;     4  нахождение конца диапазона обязательно (только для секции "Quotes:").
;     8  параметр начала диапазона игнорируется и последний встретившийся разделитель используется как начало диапазона (только для секции "Quotes:").
;    16  параметр конца диапазона игнорируется и первый встретившийся разделитель используется как конец диапазона (только для секции "Quotes:").
;    32  не подсвечивать начало диапазона (только для секции "Quotes:").
;    64  не подсвечивать конец диапазона (только для секции "Quotes:").
;   128  не захватывать и не подсвечивать начало диапазона (только для секции "Quotes:").
;   256  не захватывать и не подсвечивать конец диапазона (только для секции "Quotes:").
;   512  начало диапазона, разделителя или слова находится в начале строки.
;  1024  конец диапазона, разделителя или слова находится в конце строки.
;  2048  начало диапазона находится между разделителями (только для секции "Quotes:").
;  4096  конец диапазона находится между разделителями (только для секции "Quotes:").
;  8192  диапазон не содержит разделителей (только для секции "Quotes:").
; 16384  захватывать только начало диапазона (только для секции "Quotes:").
; 32768  диапазон не содержит каких-либо символов (только для секции "Quotes:").


Font:
;=================================================================
;FontStyle             FontSize              FaceName
;=================================================================
${HighLight_FontStyle} ${HighLight_FontSize} ${HighLight_FaceName}


Colors:
;=============================================================================================================================================================================================================================================================================================================================================================================================================================
;BasicTextColor             BasicBkColor              SelTextColor              SelBkColor              LineTextColor              LineBkColor              LineBorderColor              AltTextColor              AltBkColor              AltBorderColor              ColumnColor              MarkerColor              CaretColor              UrlColor              ActiveUrlColor              VisitUrlColor
;=============================================================================================================================================================================================================================================================================================================================================================================================================================
${HighLight_BasicTextColor} ${HighLight_BasicBkColor} ${HighLight_SelTextColor} ${HighLight_SelBkColor} ${HighLight_LineTextColor} ${HighLight_LineBkColor} ${HighLight_LineBorderColor} ${HighLight_AltTextColor} ${HighLight_AltBkColor} ${HighLight_AltBorderColor} ${HighLight_ColumnColor} ${HighLight_MarkerColor} ${HighLight_CaretColor} ${HighLight_UrlColor} ${HighLight_ActiveUrlColor} ${HighLight_VisitUrlColor}


BkImage:
;==================================================
;BkImageFile              BkImageAlpha
;==================================================
${HighLight_BkImageFile}  ${HighLight_BkImageAlpha}


AutoMark:
;====================================================================================================================
;AutoMarkFlags             AutoMarkFontStyle              AutoMarkTextColor              AutoMarkBkColor
;====================================================================================================================
${HighLight_AutoMarkFlags} ${HighLight_AutoMarkFontStyle} ${HighLight_AutoMarkTextColor} ${HighLight_AutoMarkBkColor}


QuotesRE:
;===========================================================================================
;Flags  Pattern         \BackRef=(FontStyle,ColorText,ColorBk) \BackRef=...  ParentID RuleID
;===========================================================================================
; UUID
1	"(?:[\dA-Fa-f]{4,}-)+(?:[\dA-Fa-f]{4,})?"	"\0=(0,#FF00FF,0)"	0	0
; Заголовок
1	"(iftitle)[ \t]*(\[.+\])[ \t]*([^\r\n]++)"	"\1=(0,#009FFF,#000000)	\2=(0,#C0AD72,0)	\3=(0,#D9DD22,#000000)"	0	1
1	"(\[:)(.+)(:\])"	"\1=(0,#FF8080,0)	\2=(0,#b1e876,0)	\3=(0,#FF8080,0)"	1	0
1	"(\[)(if exist)([^\[\]]+?)(\])"	"\1=(0,#FF8080,0)	\2=(0,#009FFF,0)	\3=(0,#7EBBBD,0)	\4=(0,#FF8080,0)"	1	0
1	"(title)([^\r\n]++)"	"\1=(0,#009FFF,#000000)	\2=(0,#D9DD22,#000000)"	0	0
; set переменная=
1	`^[ \t]*(set)[ \t]+(\w+)[ \t]*(=)[ \t]*(?:(\d+(?=\n))|("?/.+)(?=\n)|(.+)(?=\n))`	"\1=(0,#009FFF,0)		\2=(0,${VAR},0)		\3=(0,#FF8080,0)		\4=(0,#EBCB9C,0)		\5=(0,#7EBBBD,0)		\6=(0,${STR},0)"	0	0
; Параметры типа --set...
1	"--[\w\-]+"	"\0=(0,#C0AD72,0)"	0	0
; Шестнадцатеричное число, смещение
1	"0x[\dA-Fa-f]+"	"\0=(0,#EBCB9C,0)"	0	0
; Шестнадцатеричное число, данные
1	"\\x[\dA-Fa-f]+"	"\0=(0,#EBCB9C,0)"	0	0
; относительный путь
1	`(/[^\\:*?"$<>|\s=]+)+`	"\0=(0,#7EBBBD,0)"	0	0
; относительный путь внутри кавычек
1	`(/[^\\:*?"$<>|\s=]+)+`	"\0=(0,#7EBBBD,0)"	8	0
; относительный путь внутри значений параметров
1	`(?<==)(/[^\\:*?"$<>|\s=]+)+`	"\0=(0,#7EBBBD,0)"	7	0
; тип и номер диска
1	"(?<![a-z])[hfrc]d\d+(?:,\d+)?"	"\0=(0,#F3CF70,0)"	0	0
; Операторы
;1	"[()=|&:]"	"\0=(0,#FF8080,0)"	0	0
; Заголовок версия 2
;1	"(?m)^title.*?\r?$"	"\0=(0,#FFFF80,0)"	0	0
; Комментарий
;1	"(?m)\v?#.*?\r?$"	"\0=(0,#71AE71,0)"	0	0
; Параметры для Linux-ядер
; 1	"([\w.]+)(=)([\w.,/\-]+)"	"\1=(0,#889DD1,0) \2=(0,#FF8080,0) \3=(0,#FFF3A6,0)"	0	0
1	`(?<=[ \t])([\w./\-]+)(=)([\w.,/\-\%"]+)`	"\1=(0,#FF9CB8,0) \2=(0,#FF8080,0) \3=(0,#FFF3A6,0)"	0	7
; переменные %%
1	"(%)(\w++)(%)"	"\1=(0,#EBCB9C,0)	\2=(0,${VAR},0)	\3=(0,#EBCB9C,0)"	0	0
; переменные $ внутри кавычек
1	"(%)(\w++)(%)"	"\1=(0,#EBCB9C,0)	\2=(0,${VAR},0)	\3=(0,#EBCB9C,0)"	8	0
; переменные $ внутри параметров
1	"(%)(\w++)(%)"	"\1=(0,#EBCB9C,0)	\2=(0,${VAR},0)	\3=(0,#EBCB9C,0)"	7	0



Quotes:
;===================================================================================
;Flags  Font    Color   Color   Quote   Quote   Escape  Quote   Quote   Parent  Rule
;       style   text    bkgrnd  start   end     char    include exclude ID      ID  
;===================================================================================
;5=1+4
5	3	${STR}	0	`"`	`"`	""	""	""	0	8
;5=1+4
5	3	${STR}	0	"'"	"'"	""	""	""
;1
1	3	${COMM}	0	"#"	""	""	""	""
;389=1+4+128+256
; 389	0	${TAG}	0	"("	")"	""	""	""
;397=1+4+8+128+256
;397	0	${ATTR}	0	""	"="	""	""	""
;401=1+16+128+256
;401	0	${STR}	0	"="	""	""	""	""
;2176=128+2048
;2176	3	${STR}	0	"title"	""	""	""	""
;8197=1+4+8192
8197	0	${VAR}	0	"%"	"%"	""	""	""
;401=1+16+128+256
;401	0	#a2c859	0	"/"	" "	""	""	""
;401=1+16+128+256
;401	0	#ccd6b8	0	" "	"/"	""	""	""
;401=1+16+128+256
401	0	${ATTR}	0	"."	" "	""	""	""


Delimiters:
;===============================================
;Flags  Font    Color   Color   Char(s)   Parent
;       style   text    bkgrnd            ID
;===============================================
1	0	0	0	" "
1	0	0	0	"	"
1	0	0	0	`"`
1	0	${DEL1}	0	<
1	0	${DEL1}	0	>
1	0	${NUM}	0	%
1	0	${DEL2}	0	@
1	0	${DEL2}	0	=
1	0	${DEL2}	0	(
1	0	${DEL2}	0	)
1	0	${DEL2}	0	{
1	0	${DEL2}	0	}
;1	0	${DEL2}	0	\
1	0	${DEL2}	0	.
1	0	${DEL2}	0	|
1	0	${DEL2}	0	/
1	0	${DEL2}	0	&
;1	0	${DEL2}	0	-
;Atributes (copy to Words)



Words:
;===========================================
;Flags  Font    Color   Color   Word  Parent
;       style   text    bkgrnd        ID
;===========================================
;Commands
;Control commands:
0	0	#009FFF	0	background
0	0	#009FFF	0	blocklist
0	0	#009FFF	0	boot
0	0	#009FFF	0	cat
0	0	#009FFF	0	cdrom
0	0	#009FFF	0	checkrange
0	0	#009FFF	0	chainloader
0	0	#009FFF	0	clear
0	0	#009FFF	0	cmp
0	0	#009FFF	0	color
0	0	#009FFF	0	commandline
0	0	#009FFF	0	configfile
0	0	#009FFF	0	debug
0	0	#009FFF	0	default
0	0	#009FFF	0	displaymem
0	0	#009FFF	0	embed
0	0	#009FFF	0	errnum
0	0	#009FFF	0	errorcheck
0	0	#009FFF	0	fallback
0	0	#009FFF	0	find
0	0	#009FFF	0	font
0	0	#009FFF	0	foreground
0	0	#009FFF	0	fstest
0	0	#009FFF	0	geometry
0	0	#009FFF	0	gfxmenu
0	0	#009FFF	0	graphicsmode
0	0	#009FFF	0	halt
0	0	#009FFF	0	help
0	0	#009FFF	0	hiddenflag
0	0	#009FFF	0	hide
0	0	#009FFF	0	iftitle
0	0	#009FFF	0	initrd
0	0	#009FFF	0	is64bit
0	0	#009FFF	0	kernel
0	0	#009FFF	0	lock
0	0	#009FFF	0	makeactive
0	0	#009FFF	0	map
0	0	#009FFF	0	md5crypt
0	0	#009FFF	0	module
0	0	#009FFF	0	modulenounzip
0	0	#009FFF	0	outline
0	0	#009FFF	0	pager
0	0	#009FFF	0	partnew
0	0	#009FFF	0	parttype
0	0	#009FFF	0	password
0	0	#009FFF	0	pause
0	0	#009FFF	0	pxe
0	0	#009FFF	0	quit
0	0	#009FFF	0	read
0	0	#009FFF	0	reboot
0	0	#009FFF	0	root
0	0	#009FFF	0	rootnoverify
0	0	#009FFF	0	savedefault
0	0	#009FFF	0	serial
0	0	#009FFF	0	setkey
0	0	#009FFF	0	setvbe
0	0	#009FFF	0	splashimage
0	0	#009FFF	0	terminal
0	0	#009FFF	0	terminfo
0	0	#009FFF	0	testload
0	0	#009FFF	0	testvbe
0	0	#009FFF	0	timeout
0	0	#009FFF	0	unhide
0	0	#009FFF	0	uuid
0	0	#009FFF	0	vbeprobe
0	0	#009FFF	0	write
0	0	#009FFF	0	ls
0	0	#009FFF	0	dd
0	0	#7EBBBD	0	off
0	0	#7EBBBD	0	on
0	0	#7EBBBD	0	console
0	0	#7EBBBD	0	hercules
0	0	#7EBBBD	0	graphics
0	0	#7EBBBD	0	normal


;----------------------------------------------;
;                   CodeFold - Свёртка                   ;
;----------------------------------------------;

;Флаги (сумма членов)
;       1  учитывать регистр.
;       2  форсировать получение имени для списка слева от начала блока (только для секции "Folds:").
;       4  форсировать получение имени для списка справа от начала блока, включая начало блока (только для секции "Folds:").
;       8  начало блока (секция "Folds:") или начало пропуска (секция "Skips:") находится в начале строки.
;      16  начало блока (секция "Folds:") или начало пропуска (секция "Skips:") находится в конце строки.
;      32  конец блока (секция "Folds:") или конец пропуска (секция "Skips:") находится в начале строки.
;      64  конец блока (секция "Folds:") или конец пропуска (секция "Skips:") находится в конце строки.
;     128  не захватывать конец блока (секция "Folds:") или конец пропуска (секция "Skips:").
;     256  добавочный для 128 флаг - больший приоритет отдается блокам находящимся на одном уровне вместо родительского (только для секции "Folds:").
;     512  блок с комментариями - все вложенные блоки игнорируются (только для секции "Folds:").
;    1024  зарезервирован.
;    2048  блок запрещен - найденный блок будет проигнорирован (только для секции "Folds:").
;    4096  xml блок - "<tag" и "</tag>", "<single" и "/>", "<single" и ">" (только для секции "Folds:").
;    8192  не проверять разделители слева от начала блока (только для секции "Folds:").
;   16384  не проверять разделители справа от начала блока (только для секции "Folds:").
;   32768  не проверять разделители слева от конца блока (только для секции "Folds:").
;   65536  не проверять разделители справа от конца блока (только для секции "Folds:").
;  131072  разделители запрещены (только для секции "Folds:").
;  262144  не отображать блок в списке (только для секции "Folds:").
; 1048576  регулярное выражение в начале блока (секция "Folds:") или начале пропуска (секция "Skips:").
; 2097152  регулярное выражение в конце блока (секция "Folds:") или конце пропуска (секция "Skips:").


FoldPanel:
;=================================================================================================================================================================================================================================================================================================================================================================================================================================================================
;PanelFirstBkColor            PanelSecondBkColor             PanelNormalFoldColor             PanelActiveFoldColor             PanelNormalNodeOpenBkColor             PanelNormalNodeCloseBkColor             PanelActiveNodeOpenBkColor             PanelActiveNodeCloseBkColor             PanelNormalNodeOpenSignColor             PanelNormalNodeCloseSignColor             PanelActiveNodeOpenSignColor             PanelActiveNodeCloseSignColor
;=================================================================================================================================================================================================================================================================================================================================================================================================================================================================
${CodeFold_PanelFirstBkColor} ${CodeFold_PanelSecondBkColor} ${CodeFold_PanelNormalFoldColor} ${CodeFold_PanelActiveFoldColor} ${CodeFold_PanelNormalNodeOpenBkColor} ${CodeFold_PanelNormalNodeCloseBkColor} ${CodeFold_PanelActiveNodeOpenBkColor} ${CodeFold_PanelActiveNodeCloseBkColor} ${CodeFold_PanelNormalNodeOpenSignColor} ${CodeFold_PanelNormalNodeCloseSignColor} ${CodeFold_PanelActiveNodeOpenSignColor} ${CodeFold_PanelActiveNodeCloseSignColor}


FoldList:
;================================================
;ListTextColor            ListBkColor
;================================================
${CodeFold_ListTextColor} ${CodeFold_ListBkColor}


TagMark:
;============================================================================================================
;TagMarkFlags            TagMarkFontStyle             TagMarkTextColor             TagMarkBkColor
;============================================================================================================
${CodeFold_TagMarkFlags} ${CodeFold_TagMarkFontStyle} ${CodeFold_TagMarkTextColor} ${CodeFold_TagMarkBkColor}


Skips:
;=============================
;Flags  Skip    Skip    Escape
;       start   end     char
;=============================
1	`"`	`"`	""
1	"'"	"'"	""


Folds:
;======================================================================================
;Flags  Font    Color   Color   Fold         Fold     Delimiters   Parent  Rule    Rule
;       style   text    bkgrnd  start        end                   ID      ID      file
;======================================================================================
;425=1+8+32+128+256
425	0	0	0	"title"	"title"	""	0	0


;----------------------------------------------;
;                 AutoComplete - Автозавершение                 ;
;----------------------------------------------;

;Флаги (сумма членов)
;  1  форсировать учёт регистра.
;  2  форсировать без учёта регистра.
;  4  регулярное выражение (только для "$="). Сканирование начинается с первого символа строки каретки, а метасимвол \a или \z указывает позицию каретки.
;  8  не отображать в списке.


CompleteList:
;=====================================================================================================================================================================================================================================================================================================================================================================================================================================================================
;ListFontStyle                ListFontSize                 ListFaceName                 ListLineGap                 ListBlockIcon `"C:\1.dll", 0` ListBlockIconMargins "left;right"    ListHlBaseIcon `"C:\1.dll", 0` ListHlBaseIconMargins "left;right"    ListDocWordIcon `"C:\1.dll", 0` ListDocWordIconMargins "left;right"    ListBasicTextColor                 ListBasicBkColor                 ListSelTextColor                 ListSelBkColor
;=====================================================================================================================================================================================================================================================================================================================================================================================================================================================================
${AutoComplete_ListFontStyle} ${AutoComplete_ListFontSize} ${AutoComplete_ListFaceName} ${AutoComplete_ListLineGap} ${AutoComplete_ListBlockIcon} ${AutoComplete_ListBlockIconMargins} ${AutoComplete_ListHlBaseIcon} ${AutoComplete_ListHlBaseIconMargins} ${AutoComplete_ListDocWordIcon} ${AutoComplete_ListDocWordIconMargins} ${AutoComplete_ListBasicTextColor} ${AutoComplete_ListBasicBkColor} ${AutoComplete_ListSelTextColor} ${AutoComplete_ListSelBkColor}


Blocks:
;=============================================================================
;Аббревиатуры и содержимое аббревиатур
;
; $~аббр         обычная аббревиатура.
; $(флаги)~аббр  обычная аббревиатура с флагами.
; $=аббр         точная аббревиатура. Может содержать разделители.
; $(флаги)=аббр  точная аббревиатура с флагами. Может содержать разделители.
; $[]            установить каретку на эту позицию. Может быть несколько позиций (горячий переход).
; $[текст]       выделить текст. Может быть несколько выделений (горячий переход).
; $$             символ $.
; $\]            экранированный символ ]. Например: $[Один [1$\] ].
; ${VAR}         переменная, назначенная из Coder::Settings.
; $;             закомментированная строка.
;=============================================================================

$~find $~найти_файл
find --set-root --ignore-floppies /$[vmlinuz]

$~title $~заголовок
title $[собственно_заголовок]

$~iftitle $~если
iftitle [if exist $[путь]] $[заголовок]

$~color $~цвет
# color 1-не_выделенный (текст/фон) 2-выделенный 3-описание 4-заголовок
color $[light-gray/black yellow/green light-cyan/black light-green/black]

$~uuid $~идентификатор_диска
uuid $[сам_uuid]

$~chainloader_file $~загрузить_файл
chainloader /$[BOOTMGR]

$~chainloader_hd0 $~загрузить_с_диска
chainloader (hd0)+1

$~chainloader_+1 $~загрузить_root
chainloader +1

$~timeout $~таймер
timeout $[5]

$~halt $~выключить
halt

$~reboot $~перезагрузить
reboot

$~makeactive $~активным
makeactive

$~map $~мап
map --mem /boot/image.img (fd0)

$~root $~корень
root $[(cd)]

$~savedefault $~сохранить_выбор
savedefault

$~clear $~очистить
clear

$~configfile $~конфиг_файл
configfile /$[файл].lst

$~default $~пункт_по_умолчанию
default $[номер_пункта]

$~fallback $~Загруз_пункт_если_ошибка
fallback $[номер_пункта]

$~errorcheck $~ошибки
errorcheck $[on/off]

$~background $~фон
#background RRGGBB
background 000000

$~foreground $~цвет_текста
#foreground RRGGBB
foreground 00ff00

$~kernel $~ядро
kernel $[/boot/vmlinuz]

$~initrd
initrd $[/boot/initrd.img]

$~gfxmenu
gfxmenu $[/boot/message33.gz]

$~vbeprobe $~видеорежимы_поддерживаемые
vbeprobe
pause

$~testvbe $~видеорежим_тест
; 0x114 = 800x600x16
testvbe 0x114
pause

$~password $~пароль_для_продолжения
password $[пароль]

$~pause $~пауза
pause

$~lock $~блокировать_без_пароля
lock

$~write $~запись_по_смещению
write --offset=0x54696 (rd)+1 0

$~пример_патч_загрузчика
title bootmgr > bc0
map --mem /BOOTMGR (rd)
write --offset=0x105E (rd)+1 \xEB\x08
write --offset=0x54696 (rd)+1 0
chainloader (rd)+1
root ()
