Coder plugin (1)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 120
Joined: Sat Jan 12, 2008 10:16 am
Location: Shantou, China

Post by cnnnc »

There are two "VARMISSING" In "Coder.c" maybe duplicate:

Code: Select all

    if (nStringID == STRID_VARMISSING)
      return L"\"%s.coder\" \x0441\x043E\x0434\x0435\x0440\x0436\x0438\x0442\x0020\x043F\x0435\x0440\x0435\x043C\x0435\x043D\x043D\x0443\x044E \"%.%ds\", \x043D\x043E\x0020\x0432\x0020\x0442\x0435\x043A\x0443\x0449\x0435\x0439\x0020\x0442\x0435\x043C\x0435\x0020\x043E\x043D\x0430\x0020\x043D\x0435\x0020\x043E\x043F\x0440\x0435\x0434\x0435\x043B\x0435\x043D\x0430.";

    if (nStringID == STRID_VARMISSING)
      return L"\"%s.coder\" \x0441\x043E\x0434\x0435\x0440\x0436\x0438\x0442\x0020\x043D\x0435\x0438\x0437\x0432\x0435\x0441\x0442\x043D\x0443\x044E\x0020\x043F\x0435\x0440\x0435\x043C\x0435\x043D\x043D\x0443\x044E \"%.%ds\"";
And

Code: Select all

    if (nStringID == STRID_STATISTICS_MSG)
      return L"Всего блоков: %d\n    Корневых блоков: %d\n    Дочерних блоков: %d\nДочерних блоков текущего блока: %d\n";
maybe forget to be converted to UnicodeHexValue.

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

Post by Instructor »

cnnnc
Fixed.

Offline
Posts: 15
Joined: Thu Nov 29, 2007 2:15 pm
Location: St. Petersburg

Post by Paulus »

я тут делаю подсветку для фортрана.

я так понял что в разделе Folds не поддерживаются краткие if-конструкции, например такая запись

Code: Select all

IF (i<0) EXIT

которые пишутся в одну строку и оператор "END IF" не ставится. Что можно сделать?

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

Post by Instructor »

Paulus
Можно началом блока делать "THEN".

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

Post by VladSh »

После переключения темы вывалилась куча ошибок, типа:
Coder плагин wrote:"asm.coder" содержит неизвестную переменную "${CodeFold_ListBkColor}"
Зачем они, эти ошибки, если я сижу в js файле, а об asm'ах никогда и не помышлял даже? И они теперь всё время при переключении тем будут вываливаться?

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

VladSh, а вдруг понадобится!
Вы, к примеру, пользуетесь Оперой, зачем же Вам тогда в системе занимает место WinInet API? Снесите к чертовой матери :)

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

Post by Instructor »

VladSh
Когда диалог настроек закрывается кнопкой "ОК", то происходит перечитывание всех файлов настроек. Ошибка же говорит о том, что в активной теме подсветки в "Coder::Settings" не определены переменные, которые встречаются в синтаксических файлах.

Offline
Posts: 366
Joined: Mon Jan 10, 2011 5:28 pm
Contact:

Post by Lenchik »

А можно сделать "сбор" этих ошибок? Ибо если файлов .coder много - уж очень напрягает тыкать закрывая эти окна с ошибками. А так бы закрыл окно со списком ошибок (из которого можно было бы выкопировать названия ошибочных пунктов) и пошел бы исправлять.
И еще было бы неплохо окошко настроек кодера сделать растягиваемым - чтобы можно было растянуть и переключая темы нагляднее сравнивать их настройки и установки без скролла внутреннего окна. А потом еще и положение ползунка у этого внутреннего списка чтобы не сбрасывалось каждый раз к началу списка.

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

Post by Instructor »

Lenchik
Чем надоедливей окошко, тем быстрее решается проблема :)
А потом еще и положение ползунка у этого внутреннего списка чтобы не сбрасывалось каждый раз к началу списка.
Реализовано.

Infocatcher
<li>forbid users to change path to configuration's files;</li>
Соответственно, парные тэги не находит.
Исправлено.
js.coder:
...
Вроде, и удобно, но полноценной реализации не получается. По идее, нужно искать следующий break; прямо перед case:
Реализовано.
Last edited by Instructor on Thu Jan 13, 2011 9:32 pm, edited 2 times in total.

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

Post by Instructor »

Добавлено: синтаксический файл для Lua.
Добавлено: локально запоминается прокрутка элементов темы.
Исправлено: поиск блоков с флагом 4096.

Added: Lua syntax file.
Added: locally stored scrolling of theme elements.
Fixed: finding folds with 4096 flag.


Coder plugin v4.4

Offline
Posts: 1873
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Instructor wrote:
js.coder:
...
Вроде, и удобно, но полноценной реализации не получается. По идее, нужно искать следующий break; прямо перед case:
Реализовано.
Спасибо.
Только, пожалуй, вот так:

Code: Select all

;129=1+128
129	0	0	0	"case"	"default"	"	 :"
129	0	0	0	"default"	"case"	"	 :"
129	0	0	0	"case"	"case"	"	 "
129	0	0	0	"case"	"}"	""
129	0	0	0	"default"	"}"	""
Теперь еще бы и подсветку регулярок доработать. :roll:

[Upd]
И я настаиваю на «"default" "case"»:

Code: Select all

for(var i = 0; i <= 4; i++) {
	switch(i) {
		default: WScript.Echo("default: " + i); break;
		case 0:  WScript.Echo("case: " + i); break;
		case 1:  WScript.Echo("case: " + i); break;
	}
}
(Работает ;))

Offline
Posts: 19
Joined: Fri Jan 14, 2011 3:29 am

Post by lexa »

Привет.

Может, для подсветки переменных у PHP сделать так (в Quotes):

Code: Select all

274	0	${VAR}	0	"$"	""	""	"abcdefghijklmnopqrstuvwxyz0123456789_"	""
Тогда автокомплит работает фильтруя переменные. Ну, и $ убрать из разделителей.

В php.coder забыли про and и or. А js.coder - про true, false и null. Ещё я частенько видел, что люди проверяют на underfined:

Code: Select all

typeof variable == underfined
Думаю, логично было бы внести его как ${TYPE}.

Подсветка для Lua.

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.


Extensions:
;==========
;File types
;==========
lua


;----------------------------------------------;
;                  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).


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


Colors:
;==========================================================================================================================================================================================================================================================
;BasicTextColor             BasicBkColor              SelTextColor              SelBkColor              LineTextColor              LineBkColor              ColumnColor              MarkerColor              CaretColor              UrlColor
;==========================================================================================================================================================================================================================================================
${HighLight_BasicTextColor} ${HighLight_BasicBkColor} ${HighLight_SelTextColor} ${HighLight_SelBkColor} ${HighLight_LineTextColor} ${HighLight_LineBkColor} ${HighLight_ColumnColor} ${HighLight_MarkerColor} ${HighLight_CaretColor} ${HighLight_UrlColor}


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	0	${STR}	0	"'"	"'"	"\"	""	""
;5=1+4
5	0	${STR}	0	`"`	`"`	"\"	""	""
;1=1
1	0	${COMM}	0	"--"	""	""	""	""


Delimiters:
;======================================
;Flags  Font    Color   Color   Char(s)
;       style   text    bkgrnd
;======================================
1	0	0	0	" "
1	0	0	0	"	"
1	0	${DEL1}	0	(
1	0	${DEL1}	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	*
1	0	${DEL2}	0	+
1	0	${DEL2}	0	/
1	0	${DEL2}	0	<
1	0	${DEL2}	0	>
1	0	${DEL2}	0	[
1	0	${DEL2}	0	]


Words:
;===================================
;Flags  Font    Color   Color   Word
;       style   text    bkgrnd
;===================================
;
3	0	${NUM}	0	"0123456789"
;
1	0	${OP}	0	local
1	0	${OP}	0	in
;
1	0	${OP}	0	true
1	0	${OP}	0	false
1	0	${OP}	0	nil
1	0	${OP}	0	and
1	0	${OP}	0	or
1	0	${OP}	0	not
;
1	0	${OP}	0	require
1	0	${OP}	0	print
1	0	${OP}	0	tostring
1	0	${OP}	0	tonumber
1	0	${OP}	0	type
;
1	0	${IF}	0	function
1	0	${IF}	0	return
1	0	${IF}	0	if
1	0	${IF}	0	elseif
1	0	${IF}	0	else
1	0	${IF}	0	then
1	0	${IF}	0	for
1	0	${IF}	0	while
1	0	${IF}	0	break
1	0	${IF}	0	repeat
1	0	${IF}	0	until
1	0	${IF}	0	do
1	0	${IF}	0	end


;----------------------------------------------;
;                   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).


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
;=============================


Folds:
;=====================================================================
;Flags  Font    Color   Color   Fold              Fold      Delimiters
;       style   text    bkgrnd  start             end
;=====================================================================
;
513	0	${COMM}	0	"--[["		"]]"      ""
513	0	${STR}	0	"[["		"]]"      ""
;
3	0	0	0	"do"		"end"     " 	;."
3	0	0	0	"repeat"	"until"   " 	;."
3	0	0	0	"function"	"end"     " 	;."
;
3	0	0	0	"if"            "end"     " 	;."
131	0	0	0	"if"            "elseif"  " 	;."
131	0	0	0	"if"            "else"    " 	;."
;
3	0	0	0	"elseif"	"end"     " 	;."
131	0	0	0	"elseif"	"elseif"  " 	;."
131	0	0	0	"elseif"	"else"    " 	;."
;
3	0	0	0	"else"		"end"     " 	;."


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

Blocks:
;======================================================================
;Abbreviations and blocks
;
; $~abbr   abbreviation.
; $[]      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.
;======================================================================
$~if
if $[] then
${AutoComplete_Indent}$[]
end;

$~while
while $[] do
${AutoComplete_Indent}$[]
end;

$~for
for i = $[], $[] do
${AutoComplete_Indent}$[]
end;

$~repeat
repeat
${AutoComplete_Indent}$[]
until $[];

$~function
function $[name]()
${AutoComplete_Indent}$[]
end;


Правда, не работает фолдинг для варианта:

Code: Select all

test = function()
end
P.S. Ещё предложение. function/def присваивать не ${OP} (ключевые слова, да?), а ${IF}. Мне так показалось, что $(IF) это вроде блока. А функция - блок. К тому же, операторы break и continue подсвечиваются ${IF}, как операторы выхода из блока. Так же светится return. Помимо того, что он выходит из блока циклов, но ещё и из функции.

Offline
Posts: 3
Joined: Tue Dec 28, 2010 1:36 pm

Post by binariti »

В блоках типа

Code: Select all

<!--[if IE]><![if !IE]><![endif]-->
Подсветка не определяет закрывающий тэг. В результате весь текст после открывающего тега окрашивается в зеленый цвет комментария.
Раньше с этим вроде бы не было проблем.

http://www.ez-web.ru/sitemaking/pub/pub05/index.shtml

Offline
Posts: 1873
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

А я так ничего и не сделал с количеством переменных.
Но пусть будет: akelpad_coder.html

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

Post by Instructor »

Infocatcher
И я настаиваю на «"default" "case"»:
Добавил.

lexa
Подсветка для Lua.
Так в версии 4.4 уже добавили :)

binariti
Обновите Coder плагин до 4.4 и синтаксические файлы, которые идут в комплекте.
Locked