Instructor wrote:Сейчас возможности Coder'а стали существенно шире, подумаем.
Заодно (для пущей разминки ума) еще хотелось бы улучшить подсветку регулярных выражений в js. Даже вот есть безумный тестовый файлик.
Posted: Wed Oct 21, 2015 6:20 pm
by Lenchik
Кстати, о тестовых файлах. Хорошо бы в одном сообщении собрать набор тестовых файлов под разные *.coder из комплекта плагина, демонстрирующие все прелести всех опций - наглядный пример. А то ведь регулярно функционал расширяется, и пока не увидишь воочию красивые реализации чего-то - не поймёшь. А вдруг и в своих некомплектных подсветках можно было бы что-то улучшить, а просто не знаешь, что теперь можно и как-то по-новому.
Posted: Wed Oct 21, 2015 9:09 pm
by YuS
Infocatcher wrote:хотелось бы улучшить подсветку регулярных выражений в js. Даже вот есть безумный тестовый файлик.
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>":
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>":
Instructor wrote: Т.е. любой не закрытый тег не будет ломать структуру.
Понятно. Т.е. закрывающий тег (либо его часть или часть начального) может принадлежать двум блокам одновременно?
Во всяком случае, это достаточно хороший выход для сложных документов, особенно если они с вольным синтаксисом тегов (т.е. при наличии тегов, которые могут иметь закрывающий тег, а могут быть без него) или вообще с ошибками структуры...
Instructor wrote:
Теги, которые вы указали в примере, добавлены в html.coder. Если есть ещё какие-либо, не требующие закрывающего тега, то указывайте их - они будут добавлены.
Во втором и третьем блоке ломается структура, т.е. там где keygen с атрибутами и где не закрытый тег
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: 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", но наверняка это не всё, что должно попасть в исключения. Для уточнения нужно больше статистики по тому, что не должно быть подсвечено.