Coder plugin (2)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 1873
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Instructor wrote:Сейчас возможности Coder'а стали существенно шире, подумаем.
Заодно (для пущей разминки ума) еще хотелось бы улучшить подсветку регулярных выражений в js. :roll: Даже вот есть безумный тестовый файлик. :D

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

Post by Lenchik »

Кстати, о тестовых файлах. Хорошо бы в одном сообщении собрать набор тестовых файлов под разные *.coder из комплекта плагина, демонстрирующие все прелести всех опций - наглядный пример. А то ведь регулярно функционал расширяется, и пока не увидишь воочию красивые реализации чего-то - не поймёшь. А вдруг и в своих некомплектных подсветках можно было бы что-то улучшить, а просто не знаешь, что теперь можно и как-то по-новому.

YuS
Offline
Posts: 513
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

Infocatcher wrote:хотелось бы улучшить подсветку регулярных выражений в js. :roll: Даже вот есть безумный тестовый файлик. :D
Тестовый .coder файл

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

Post by Instructor »

YuS
В Coder 18.9 секция "Folds:" в html.coder может выглядеть

Code: Select all

Folds:
;=====================================================================================================================================================================================
;Flags  Font    Color   Color   Fold                                                                                      Fold        Deli      Parent  Rule    Rule
;       style   text    bkgrnd  start                                                                                     end         miters    ID      ID      file
;=====================================================================================================================================================================================
;1052676=4+4096+1048576
1052676	0	0	0	`<script\s*+(language|type)?(?(1)=["']?+(text/javascript|JavaScript|JScript)["']?+).*?>`  "</script>" ""        0	2	"alias:.js"
;1052676=4+4096+1048576
1052676	0	0	0	`<script\s++(language|type)=["']?+(text/vbscript|VBScript|VBS)["']?+.*?>`                 "</script>" ""        0	2	"alias:.vbs"
;1052676=4+4096+1048576
1052676	0	0	0	`<style\s*+(type)?(?(1)=["']?+(text/css)["']?+).*?>`                                      "</style>"  ""        0	2	"alias:.css"
;4=4
4	0	0	0	"<?php"                                                                                   "?>"        ""        0	2	"alias:.php_for_coder"
;===========================================================================================
;Flags  Font    Color   Color   Fold           Fold          Deli       Parent  Rule    Rule
;       style   text    bkgrnd  start          end           miters     ID      ID      file
;===========================================================================================
;513=1+512
513	3	${COMM}	0	"<!--"         "-->"         ""         0	0
;513=1+512
513	0	0	0	"<%"           "%>"          ""         0	1
;111104=512+4096+8192+32768+65536
111104	0	0	0	"<script"      "</script>"   " 	>"      0	1
;--XML--
;2049=1+2048
2049	0	0	0	"</"           ""            ""         0	0
;5=1+4
5	0	0	0	"<?"           "?>"          ""         0	1
;4229=1+4+128+4096 Special xml fold: here flag 128 closes "<x>" fold in "<y><x></y>"
4229	0	0	0	"<"            "</"          ""         0	1
;4101=1+4+4096
4101	0	0	0	"<"            "/>"          ""         0	1
;3412609=1+128+512+4096+262144+1048576+2097152
3412609	0	0	0	"\s"           "[/?]?>"      ""         1	2
Т.е. любой не закрытый тег не будет ломать структуру.

Теги, которые вы указали в примере, добавлены в html.coder. Если есть ещё какие-либо, не требующие закрывающего тега, то указывайте их - они будут добавлены.

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

Post by Instructor »

Добавлено: в конце блока с флагом 2097152 теперь возможно использовать обратные ссылки на начало блока. Обратная ссылка \101 соответствует \1 в начале блока, \102 соответствует \2 и т.д.
Добавлено: специальный xml блок с флагами 4229, который закрывает "<x>" в "<y><x></y>":

Code: Select all

;4229=1+4+128+4096
4229	0	0	0	"<"            "</"          ""         0	1
Added: in fold end with flag 2097152 now possible to use backreferences to fold start. Backreference \101 matches \1 in fold start, \102 matches \2 and so on.
Added: special xml fold with flags 4229 that closes "<x>" in "<y><x></y>":

Code: Select all

;4229=1+4+128+4096
4229	0	0	0	"<"            "</"          ""         0	1
Coder plugin v18.9

YuS
Offline
Posts: 513
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

Instructor wrote: Т.е. любой не закрытый тег не будет ломать структуру.
Понятно. Т.е. закрывающий тег (либо его часть или часть начального) может принадлежать двум блокам одновременно?
Во всяком случае, это достаточно хороший выход для сложных документов, особенно если они с вольным синтаксисом тегов (т.е. при наличии тегов, которые могут иметь закрывающий тег, а могут быть без него) или вообще с ошибками структуры...
Instructor wrote: Теги, которые вы указали в примере, добавлены в html.coder. Если есть ещё какие-либо, не требующие закрывающего тега, то указывайте их - они будут добавлены.
Во втором и третьем блоке ломается структура, т.е. там где keygen с атрибутами и где не закрытый тег
Начальный/конечный теги:
Обязательный/необязательный (XHTML: обязательный/обязательный).

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

Post by Instructor »

YuS wrote:Т.е. закрывающий тег (либо его часть или часть начального) может принадлежать двум блокам одновременно?
Да.

optgroup добавлен. Во втором блоке keyqen вместо keygen.

YuS
Offline
Posts: 513
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

Instructor wrote: optgroup добавлен. Во втором блоке keyqen вместо keygen.
Спасибо! И за keygen тоже, а то смотрю и понять не могу, что не так (скопировал откуда-то не проверив)... Совсем зрение подводит. Как говорится, повылазило - поленился на синтаксис txt переключить разок, где это сразу видно было бы. :)

Если ещё найду необязательные теги, отпишу.

YuS
Offline
Posts: 513
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

Instructor,
Почитал спецификацию HTML5.1, которая будет принята в 2016г., так там почти полная вольница:
8.1.2.4 Optional tags
т.е. наверное, рано или поздно, придется таки использовать вариант с обходом любого незакрытого тега...
Думаю, что поиск необязательных тегов, уже сейчас, большого смысла не будет иметь.
На всякий случай: Optional tags HTML5

Offline
Posts: 202
Joined: Sat Mar 28, 2015 2:36 pm
Location: Russia

Post by Kley »

Скажите пожалуйста, а так только у меня?
switch ()
{
ca|se :
break;
case :
break;
default:
break;
}

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

Post by Instructor »

YuS wrote:... почти полная вольница:
8.1.2.4 Optional tags
Нашёл только 4 новых тега. Добавлено.

Kley
См. Coder 19.0.

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

Post by Instructor »

Исправлено: выделение конца тега без флага 2097152.

Fixed: fold end marking without 2097152 flag.


Coder plugin v19.0

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

Post by Infocatcher »

YuS wrote:
Infocatcher wrote:хотелось бы улучшить подсветку регулярных выражений в js. :roll: Даже вот есть безумный тестовый файлик. :D
Тестовый .coder файл
Ооо! Шикарно, спасибо. Будем погонять. :)
Пока что все правильно работает.

YuS
Offline
Posts: 513
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

Instructor wrote:Нашёл только 4 новых тега. Добавлено.
Всего-то? Ну и замечательно, что ничего придумывать не надо...
Infocatcher wrote: Пока что все правильно работает.
Всё же, там есть тонкий момент, в правиле QuotesRE для исключения нерегулярных выражений. За образец исключения были взяты
"\d/" и "/\d", но наверняка это не всё, что должно попасть в исключения. Для уточнения нужно больше статистики по тому, что не должно быть подсвечено.

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

Post by Infocatcher »

YuS wrote:Всё же, там есть тонкий момент, в правиле QuotesRE для исключения нерегулярных выражений. За образец исключения были взяты
"\d/" и "/\d", но наверняка это не всё, что должно попасть в исключения. Для уточнения нужно больше статистики по тому, что не должно быть подсвечено.
Пока что вот такое придумалось:
https://github.com/Infocatcher/AkelPad_ ... de2ee0ecb6
Locked