Coder plugin (2)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Drugmix
Я не про хранение настроек, я про установку программы _целиком_ в %APPDATA%.

Offline
Posts: 582
Joined: Mon Apr 08, 2013 9:50 pm
Location: Win7SP1x64, APx64

Post by Drugmix »

Skif_off
программы правильно устанавливать в Program Files.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Drugmix wrote:программы правильно устанавливать в Program Files.
Это вопрос спорный.


Подскажите, пожалуйста, как корректнее сделать: для подсветки конструкций вида
\@xxx
\xx@x
по подсказке Instructor добавил выражение

Code: Select all

\\[a-z]*@[a-z]+
но т.к. я упустил из виду конструкции вида \xx@, то добавил "или"

Code: Select all

\\[a-z]*@[a-z]+|\\[a-z]+@[a-z]*
Но, кажется, это не оптимальное решение, такой вариант:

Code: Select all

\\[a-z]*@[a-z]+|\\[a-z]+@
тоже работает. В предпоследнем по сути оба "или" частично перекрывают друг друга и, хотя работает, последнее будет правильнее?

З.Ы. Прошу прощения, если все очевидно, иногда начинаю слегка тупить и выклевывать себе мозг сомнениями - лучше спросить :)

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Skif_off wrote:
Drugmix wrote:программы правильно устанавливать в Program Files.
Это вопрос спорный.
Согласен. Некоторые программы могут ставиться в Program Files (x86) :)

Offline
Posts: 124
Joined: Tue Jun 03, 2008 10:32 pm

Post by Xephon »

Skif_off, если минимальная длина искомой строки 3 символа, то все выражения не совсем корректные, т.к. захватывают варианты с двумя символами. Правильным будет:

Code: Select all

\\@[a-z]{2,}|\\[a-z]@[a-z]+|\\[a-z]{2,}@[a-z]*
Либо еще есть такой вариант:

Code: Select all

\\(?=[a-z@]{3,})[a-z]*@[a-z]*
правда не знаю, будет ли он работать в данной реализации регэкспов от Instructor

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Xephon wrote:т.к. захватывают варианты с двумя символами.
Но символов получается минимум 3: \, @ и [a-z]

Code: Select all

\\@[a-z]{2,}|\\[a-z]@[a-z]+|\\[a-z]{2,}@[a-z]*
\\(?=[a-z@]{3,})[a-z]*@[a-z]*
не захватится \x@, если только уменьшить в {x,} все числа на единицу, тогда из первого по сути получится

Code: Select all

\\[a-z]*@[a-z]+
За (?=[a-z@]{3,}) большое спасибо, постараюсь запомнить (в виде

Code: Select all

\\(?=[a-z@]{2,})[a-z]*@[a-z]*
вроде работает, но чем-то меня смущает :)).

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Skif_off wrote:Такой вопрос возник попутно (не знаю, насколько часто такое встречается, но как минимум один раз подобное видел с AutoIt): есть пара строк

echo ""$1" "$BASE" o p" | dc
echo "Все аргументы командной строки: "$*""
Сомневаюсь, что это корректный синтаксис, иначе нет смысла для парсера этого языка в обрамляющих кавычках по краям.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Instructor
Не знаю, насколько корректен, попытка пообщаться с опытным пользователем оказалась неудачной. Пример 12-36 для dc из книги Искусство программирования на языке сценариев командной оболочки.

Думаю забить, т.к. не часто встречается, однако любопытно: так понимаю, парсер не учитывает вложенности, а захватывает только до второй кавычки? Или ищет последнюю четную?

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Skif_off
По парсером языка подразумевается не парсер подсветки AkelPad'а, а парсер, разбирающий Bash скрипт, перед выполнением. Говорить о вложенности не экранированных кавычек синтаксически не верно.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Instructor
Честно говоря, в написании Unix shell скриптов не силен, мягко говоря, да и в консоли какой бы то ни было ОС (без манов), не считая встречающихся пояcнений на различных форумах (больше всего когда разбирался с VPN и поднятием оной при старте ОС (ЕМНИП, FreeBSD 7.2 и Ubuntu 10.04 + Билайн)), по Unix shell за спиной из целенаправленного только офдокументация по bash (перевод) и вышеупомянутая книга (из-за большого количества примеров, пока изучаю), поэтому интересует парсер подсветки AkelPad'а, корректность примеров оставляю на совести автора :) Изначально целью было учтонить список команд для sh.coder (40 слов в секции Words:, против не менее 200 в любом популярном редакторе с подсветкой (кроме EmEditor - чуть больше 100)), что не требует сертификатов, многолетний опыт и проч. (делать компиляцию не хочется)

Так понимаю, | - конвеер, т.о. команде dc передается целиком строка "$1" "$BASE" o p, не раскрывая значения переменных $1 и $BASE, чтобы переменными рулила уже dc, а записи в виде $var и "$var" равнозначны: проверил на внутренней переменной $HOME вывод в консоли (ибо был не уверен)

Code: Select all

echo $HOME
echo "$HOME"
echo "${HOME}"
- выводят одно и то же значение.

Offline
Posts: 3
Joined: Thu Dec 05, 2013 1:06 pm
Location: Saint-Petersburg

lst.coder

Post by Abat.mf »

Погуглив не нащёл. И по сему может кому будет полезно, lst.coder синтакс файл для *.lst файлов от GRUBDos.

Файлик 28,5 КБ (29 260 байт) MD5=A0B6CADD43DA801D6BF53AD95CC2F908 лежит в Яде

Code: Select all

;----------------------------------------------;
;           Coder plugin syntax file           ;
;----------------------------------------------;

;Colors
; Color need to be in #RRGGBB format.
; If color equal to zero, then color ignored.
;
;Font styles
; 0  ignored.
; 1  normal.
; 2  bold.
; 3  italic.
; 4  bold italic.
;
;For comfort file viewing/editing set tab size to 8 or higher.


Files:
;==========
;File types
;==========
*.lst


;----------------------------------------------;
;                  HighLight                   ;
;----------------------------------------------;

;Flags (sum of the members)
;     1  case sensitive.
;     2  word is a composition of characters ("Words:" section only). Example: "0123456789" - highlight words that contain only digits.
;     4  quote end required ("Quotes:" section only).
;     8  quote start string is ignored and last meet delimiter used as quote start ("Quotes:" section only).
;    16  quote end string is ignored and first meet delimiter used as quote end ("Quotes:" section only).
;    32  don't highlight quote start ("Quotes:" section only).
;    64  don't highlight quote end ("Quotes:" section only).
;   128  don't catch and don't highlight quote start ("Quotes:" section only).
;   256  don't catch and don't highlight quote end ("Quotes:" section only).
;   512  quote start, delimiter or word located at line start.
;  1024  quote end, delimiter or word located at line end.
;  2048  quote start is surrounded with delimiters ("Quotes:" section only).
;  4096  quote end is surrounded with delimiters ("Quotes:" section only).
;  8192  quote doesn't contain delimiters ("Quotes:" section only).
; 16384  only quote start string is catched ("Quotes:" section only).


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}


Quotes:
;======================================================================
;Flags  Font    Color   Color   Quote   Quote   Escape  Quote   Quote
;       style   text    bkgrnd  start   end     char    include exclude
;======================================================================
;5=1+4
5	3	${STR}	0	`"`	`"`	""	""	""
;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	"."	" "	""	""	""


QuotesRE:
;==========================================================================
;Flags  Pattern         \BackRef=(FontStyle,ColorText,ColorBk) \BackRef=...
;==========================================================================


Delimiters:
;======================================
;Flags  Font    Color   Color   Char(s)
;       style   text    bkgrnd
;======================================
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	${NUM}	0	0
1	0	${NUM}	0	1
1	0	${NUM}	0	2
1	0	${NUM}	0	3
1	0	${NUM}	0	4
1	0	${NUM}	0	5
1	0	${NUM}	0	6
1	0	${NUM}	0	7
1	0	${NUM}	0	8
1	0	${NUM}	0	9
;Atributes (copy to Words)
1	0	${DEL1}	0	irqpoll
1	0	${DEL1}	0	noapic
1	0	${DEL1}	0	noapm
1	0	${DEL1}	0	nodma
1	0	${DEL1}	0	nomce
1	0	${DEL1}	0	nolapic
1	0	${DEL1}	0	nosmp
1	0	${DEL1}	0	noswap
1	0	${DEL1}	0	swap
1	0	${DEL1}	0	toram
1	0	${DEL1}	0	nolocales


Words:
;===================================
;Flags  Font    Color   Color   Word
;       style   text    bkgrnd
;===================================
;Commands
;Control commands:
0	0	${OP}	0	boot
0	0	${OP}	0	acpi
0	0	${OP}	0	badram
0	0	${OP}	0	blocklis
0	0	${OP}	0	cat
0	0	${OP}	0	chainloader
0	0	${OP}	0	cmp
0	0	${OP}	0	configfile
0	0	${OP}	0	cpuid
0	0	${OP}	0	crc
0	0	${OP}	0	date
0	0	${OP}	0	drivemap
0	0	${OP}	0	echo
0	0	${OP}	0	export
0	0	${OP}	0	false
0	0	${OP}	0	gettext
0	0	${OP}	0	gptsync
0	0	${OP}	0	halt
0	0	${OP}	0	help
0	0	${OP}	0	initrd
0	0	${OP}	0	initrd16
0	0	${OP}	0	insmod
0	0	${OP}	0	keystatus
0	0	${OP}	0	linux
0	0	${OP}	0	linux16
0	0	${OP}	0	list_env
0	0	${OP}	0	load_env
0	0	${OP}	0	loopback
0	0	${OP}	0	ls
0	0	${OP}	0	normal
0	0	${OP}	0	normal_exit
0	0	${OP}	0	parttool
0	0	${OP}	0	password
0	0	${OP}	0	password_pbkdf2
0	0	${OP}	0	play
0	0	${OP}	0	pxe_unload
0	0	${OP}	0	read
0	0	${OP}	0	reboot
0	0	${OP}	0	save_env
0	0	${OP}	0	search
0	0	${OP}	0	sendkey
0	0	${OP}	0	set
0	0	${OP}	0	true
0	0	${OP}	0	unset
0	0	${OP}	0	uppermem
0	0	${OP}	0	serial
0	0	${OP}	0	terminal_input
0	0	${OP}	0	terminal_output
0	0	${OP}	0	terminfo
;Menu-specific commands  
0	0	${AREA}	0	menuentry
0	0	${AREA}	0	submenu
0	0	${AREA}	0	timeout
0	0	${AREA}	0	default
0	0	${AREA}	0	gfxmenu
0	0	${AREA}	0	background
0	0	${AREA}	0	foreground
0	0	${AREA}	0	splashimage
0	0	${AREA}	0	configfile
;other commands
0	0	${OP}	0	title
0	0	${OP}	0	color
0	0	${OP}	0	find
0	0	${OP}	0	map
0	0	${OP}	0	savedefault
0	0	${OP}	0	kernel
0	0	${OP}	0	fallback
0	0	${OP}	0	write
0	0	${OP}	0	rootnoverify
0	0	${OP}	0	vbeprobe
0	0	${OP}	0	testvbe
0	0	${OP}	0	partnew
0	0	${OP}	0	partype
0	0	${OP}	0	lock
0	0	${OP}	0	quit
0	0	${OP}	0	pause
0	0	${OP}	0	commandline
;Special environment variables
1	0	${IF}	0	biosnum
1	0	${IF}	0	chosen
1	0	${IF}	0	color_highlight
1	0	${IF}	0	color_normal
1	0	${IF}	0	debug
1	0	${IF}	0	fallback
1	0	${IF}	0	gfxmode
1	0	${IF}	0	gfxpayload
1	0	${IF}	0	gfxterm_font
1	0	${IF}	0	icondir
1	0	${IF}	0	lang
1	0	${IF}	0	locale_dir
1	0	${IF}	0	menu_color_highlight
1	0	${IF}	0	menu_color_normal
1	0	${IF}	0	net_pxe_boot_file
1	0	${IF}	0	net_pxe_dhcp_server_name
1	0	${IF}	0	net_pxe_domain
1	0	${IF}	0	net_pxe_extensionspath
1	0	${IF}	0	net_pxe_hostname
1	0	${IF}	0	net_pxe_ip
1	0	${IF}	0	net_pxe_mac
1	0	${IF}	0	net_pxe_rootpath
1	0	${IF}	0	pager
1	0	${IF}	0	prefix
1	0	${IF}	0	pxe_blksize
1	0	${IF}	0	pxe_default_gateway
1	0	${IF}	0	pxe_default_server
1	0	${IF}	0	root
1	0	${IF}	0	superusers
1	0	${IF}	0	theme
1	0	${IF}	0	hook
1	0	${IF}	0	/default
1	0	${IF}	0	mem
1	0	${IF}	0	unhook
1	0	${IF}	0	unmap
;Atributes (copy to Delimiters)
1	0	${DEL1}	0	irqpoll
1	0	${DEL1}	0	noapic
1	0	${DEL1}	0	noapm
1	0	${DEL1}	0	nodma
1	0	${DEL1}	0	nomce
1	0	${DEL1}	0	nolapic
1	0	${DEL1}	0	nosmp
1	0	${DEL1}	0	noswap
1	0	${DEL1}	0	swap
1	0	${DEL1}	0	toram
1	0	${DEL1}	0	nolocales


;----------------------------------------------;
;                   CodeFold                   ;
;----------------------------------------------;

;Flags (sum of the members)
;      1  case sensitive.
;      2  force get fold name for function list from left at the fold start ("Folds:" section only).
;      4  force get fold name for function list from right at the fold start, including fold start ("Folds:" section only).
;      8  fold start located at line start ("Folds:" section only).
;     16  fold start located at line end ("Folds:" section only).
;     32  fold end located at line start ("Folds:" section only).
;     64  fold end located at line end ("Folds:" section only).
;    128  don't catch fold end ("Folds:" section) or skip end ("Skips:" section).
;    256  additional to 128 flag - more priority is given to sibling level instead of parent level ("Folds:" section only).
;    512  comment fold - fold ignore any other folds and skips inside ("Folds:" section only).
;   1024  reserved.
;   2048  deny fold - founded fold will be ignored ("Folds:" section only).
;   4096  xml fold - "<tag" and "</tag>", "<single" and "/>", "<single" and ">" ("Folds:" section only).
;   8192  don't check delimiters from left of fold start ("Folds:" section only).
;  16384  don't check delimiters from right of fold start ("Folds:" section only).
;  32768  don't check delimiters from left of fold end ("Folds:" section only).
;  65536  don't check delimiters from right of fold end ("Folds:" section only).
; 131072  deny delimiters ("Folds:" section only).
; 262144  don't show fold in list ("Folds:" section only).


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
;       style   text    bkgrnd  start        end
;===============================================================


;----------------------------------------------;
;                 AutoComplete                 ;
;----------------------------------------------;

Blocks:
;======================================================================
;Abbreviations and blocks
;
; $~abbr   normal abbreviation.
; $=abbr   exact abbreviation. May contain delimiters.
; $[]      set caret to this position. Can be multiple (hot spots).
; $[text]  select text. Can be multiple (hot spots).
; $$       symbol $.
; $\]      escape symbol ]. Can be used in $[text] block: $[One [1$\] ].
; ${VAR}   variable assigned from Coder::Settings.
; $;       comment line.
;======================================================================

Может кому пригодиться.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

В log.coder добавил подсветку IP-адресов

Code: Select all

0	"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b"	"\0=(0,${IF},0)"
почему работает только если у адреса с обеих сторон пробелы или конец/начало строки с одной из? Запятая, скобки и прочее - разве не разделители?

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Skif_off
Исправлено. В 4.8.6 будут использоваться текущие разделители окна редактирования.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Instructor
Не совсем понял: разделители из секции Delimiters coder-файлов или разделители слов из настроек самого AkelPad? Или и то, и другое?

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

"Разделители слов из настроек самого AkelPad". "Разделители из секции Delimiters coder-файлов" не применимы для секции "QuotesRE" по причине того, что могут иметь разную длину и регистрозависимость.
Locked