Page 95 of 99

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

Posted: Wed Oct 21, 2015 6:20 pm
by Lenchik
Кстати, о тестовых файлах. Хорошо бы в одном сообщении собрать набор тестовых файлов под разные *.coder из комплекта плагина, демонстрирующие все прелести всех опций - наглядный пример. А то ведь регулярно функционал расширяется, и пока не увидишь воочию красивые реализации чего-то - не поймёшь. А вдруг и в своих некомплектных подсветках можно было бы что-то улучшить, а просто не знаешь, что теперь можно и как-то по-новому.

Posted: Wed Oct 21, 2015 9:09 pm
by YuS
Infocatcher wrote:хотелось бы улучшить подсветку регулярных выражений в js. :roll: Даже вот есть безумный тестовый файлик. :D
Тестовый .coder файл

Posted: Thu Oct 22, 2015 6:51 am
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. Если есть ещё какие-либо, не требующие закрывающего тега, то указывайте их - они будут добавлены.

Posted: Thu Oct 22, 2015 6:59 am
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

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

Posted: Thu Oct 22, 2015 12:01 pm
by Instructor
YuS wrote:Т.е. закрывающий тег (либо его часть или часть начального) может принадлежать двум блокам одновременно?
Да.

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

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

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

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

Posted: Thu Oct 22, 2015 3:05 pm
by Kley
Скажите пожалуйста, а так только у меня?
switch ()
{
ca|se :
break;
case :
break;
default:
break;
}

Posted: Thu Oct 22, 2015 4:20 pm
by Instructor
YuS wrote:... почти полная вольница:
8.1.2.4 Optional tags
Нашёл только 4 новых тега. Добавлено.

Kley
См. Coder 19.0.

Posted: Thu Oct 22, 2015 4:24 pm
by Instructor
Исправлено: выделение конца тега без флага 2097152.

Fixed: fold end marking without 2097152 flag.


Coder plugin v19.0

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

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

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