Coder plugin (2)
- Author
- Message
-
Offline
- Site Admin
- Posts: 6403
- Joined: Thu Jul 06, 2006 7:20 am
Тестовая версия для работы с Coder 18.7 и выше. Сейчас вся обработка обычных правил и правил с регулярными выражениями происходит в одном цикле, что избавляет от проблемы наложения правил при горизонтальной прокрутке.
Добавлено: возможность использовать правила в "Quotes:" из "QuotesRE:". Требуется AkelPad 4.9.7 или выше.
Added: possibility to use rules in "Quotes:" from "QuotesRE:". Required AkelPad 4.9.7 or higher.
Coder plugin v18.7
Добавлено: возможность использовать правила в "Quotes:" из "QuotesRE:". Требуется AkelPad 4.9.7 или выше.
Added: possibility to use rules in "Quotes:" from "QuotesRE:". Required AkelPad 4.9.7 or higher.
Coder plugin v18.7
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
При установке каретки в атрибуты-значения:
почему-то как блок подсвечивается вся строка. Ожидается подсветка только начального script и конечного, по аналогии, как это сделано в других тэгах, имеющих атрибуты.
Code: Select all
<script attr1="value1" attr2="value2"></script>
-
Offline
- Posts: 513
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
-
Offline
- Posts: 513
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 513
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
Нет, не подсвечивается. Но там в html.coder куча правил и надо разбирать их иерархию, чтобы определить почему захватывает не тем правилом, которым хотелось...VladSh wrote:YuS
В body y Вас тоже атрибуты раскрашиваются, как например в div?
В принципе, ведь тег <body> ничем не отличается от других, т.е. надо просто составить четкую иерархию для всех правил, которые могут пересекаться.
Для примера:
если перелопатить Folds, т.е. выключить правило:
Code: Select all
;1052676=4+4096+1048576
370688 0 0 0 "<body" "" " >" 0 1
Code: Select all
;1052676=4+4096+1048576
1052676 0 0 0 "<body\s++.*?>" "</body>" "" 0 2
Code: Select all
;4101=1+4+4096
4101 0 0 0 "<" "</" "" 0 1
;4101=1+4+4096
4101 0 0 0 "<" "/>" "" 0 1
Правда, не совсем понял, почему указанная выше пара правил имеет больший приоритет, ведь они в списке находятся ниже, чем новое правило, но это уже вопрос к автору, видимо...
-
Offline
- Site Admin
- Posts: 6403
- Joined: Thu Jul 06, 2006 7:20 am
YuS
Нет нужды писать правило для body. Достаточно закомментировать имеющееся:
Нет нужды писать правило для body. Достаточно закомментировать имеющееся:
Code: Select all
;--Ignore tags--
...
;370688=2048+8192+32768+65536+262144
;370688 0 0 0 "<body" "" " >" 0 1
-
Offline
- Posts: 513
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
-
Offline
- Posts: 513
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
Instructor,
Тут ещё один интересный момент:
Если в том же файле html.coder, с работающим правилом для блока <body\s++.*?> </body>, добавить аналогичный блок для "table":
то ломается структура блока "body"...
Вот тут подготовленный комплект, надо только раскомментировать правило для "table". Выключение всех блоков, где присутствует </table>, не помогает...
Тут ещё один интересный момент:
Если в том же файле html.coder, с работающим правилом для блока <body\s++.*?> </body>, добавить аналогичный блок для "table":
Code: Select all
;1052676=4+4096+1048576
;1052676 0 0 0 "<table\s*+.*?>" "</table>" "" 0 2
Вот тут подготовленный комплект, надо только раскомментировать правило для "table". Выключение всех блоков, где присутствует </table>, не помогает...
-
Offline
- Site Admin
- Posts: 6403
- Joined: Thu Jul 06, 2006 7:20 am
Чего-о?YuS wrote:Тогда не будет блока, т.е. закрывающим будет, соответственно правилу, тег ">", а не "</body>...

Просто хотел отметить, что не следует усложнять там, где нет необходимости. Конструкции вида "<table\s*+.*?>" нужны только для "Rule file". И эксперименты со сложными html файлами (тем более, когда изначально структура битая, из-за использования "//--></script><noscript></noscript></td>") я бы ставил, когда понимал действие каждого правила.YuS wrote:Вот тут подготовленный комплект...
-
Offline
- Posts: 513
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
Сори, за косноязычие.Instructor wrote:Чего-о?YuS wrote:Тогда не будет блока, т.е. закрывающим будет, соответственно правилу, тег ">", а не "</body>...

Имелось ввиду, что при отсутствующем правиле для body, с простым комментированием ";--Ignore tags--", получим "<single" and ">", вместо "<tag" and "</tag>"...
Ну, это, естественно, на приложенном сложном файле можно пронаблюдать.

И это же относится к вопросу:
Структуру не я побилInstructor wrote:И эксперименты со сложными html файлами (тем более, когда изначально структура битая, из-за использования "//--></script><noscript></noscript></td>") я бы ставил, когда понимал действие каждого правила.


А учитывая послабления в HTML5, где с тегами вообще может какая угодно чехарда случиться (т.к. многие закрывающие теги стали просто необязательны, как и вообще, в принципе, использование таких тегов как html, head, body...), при реальном использовании редактора на "живых" файлах, таких ситуаций может возникнуть масса...
Теги body и table, и правила с регэкспами были просто использованы для тестов, как раз для улучшения понимания процесса работы правил.
На простеньких, тестовых файлах, всё более-менее понятно работает, но вот когда DOM-структура запутана (что не редко присутствует в реальных файлах), то ошибки становятся неизбежны...
-
Offline
- Site Admin
- Posts: 6403
- Joined: Thu Jul 06, 2006 7:20 am
YuS wrote:... получим "<single" and ">", вместо "<tag" and "</tag>"...
Ну, это, естественно, на приложенном сложном файле можно пронаблюдать.
Видимо надо пояснить, что фолдинг теряет смысл, если есть, например, такая структура:- а вот если их оба отключить, то уже будет работать новое правило с регуляркой, и всё будет подсвечиваться и выделяться именно блоком <body></body>
Code: Select all
<table>
<a>
</table>

-
Offline
- Posts: 513
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
Начнем с того, что я ведь ни на чем не настаиваю, если нельзя, то нельзя... просто констатирую факт. Возможно, что учет всех подобных тонкостей равнозначно созданию подобия браузера, что противоречит концепции AP (быть маленьким и быстрым)...Instructor wrote: Видимо надо пояснить, что фолдинг теряет смысл, если есть, например, такая структура:В данном случае нельзя увеличить приоритет <table></table>, до такой степениCode: Select all
<table> <a> </table>
, чтобы он выровнял структру файла, необходимо просто закрыть тег <a>.
А вот пример не совсем удачный, т.к. по стандарту у элемента "a" открывающий и закрывающий тег обязательны, это просто конкретная ошибка структуры (хотя и этот момент, вроде бы, редактор должен учитывать, хотя бы каким-нибудь предупреждающим сообщением, типа: нарушена структура, поэтому извини - фолдинга не будет совсем

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