Coder plugin (2)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 294
Joined: Tue Jul 27, 2010 11:18 pm

Post by Serge Yolkin »

Забавно, но мой самый первый пост после регистрации на форуме (почти 4 года назад) содержал предложение, способное решить многие проблемы, бурно обсуждаемые в этой ветке. В самом конце той темы.

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

Post by YuS »

Cuprum wrote: Немного напрягает, что если id напечатать как цвет, решетка в нем

Image
Ну, это условность, с которой придется мириться...
Подсветка будет включаться при наличии именно от 3 до 6 символов попадающих в диапазон регэкспа [A-F\d]{3,6}\b
Пока универсального решения не нашел... да и времени свободного гораздо меньше, чем хотелось бы.
Кстати, собственно, подсветка включается только на 3 или 6 символах, это зашито в плагине, если не ошибаюсь.
В общем, в принципе, можно ещё сузить действие регэкспа, как-то так:

Code: Select all

"(#)(?:([A-F\d]{3}|[A-F\d]{6})\b)"  "\1=(0,0,\2)"
срабатывание будет тогда строго на 3 или 6 символах из соответствующего диапазона, после решетки.
Cuprum wrote: + при ручной печати цвета, во время набора первых 2 симолов они

Image
См. выше, это одного поля ягоды... пока не будет четкого совпадения по шаблону, не будет и подсветки.
Cuprum wrote:

Image
С этим справиться с наскока не получилось, но чувствую, что решение есть, надо только подумать. При наличии времени попробую что-нибудь придумать или может быть, более опытные товарищи подскажут куда копать надо.
Добавлено:
Вот, кстати, можно так попробовать бороться:

Code: Select all

0	"(?<=url)(\()(.+)(\))" "\1=(0,${DEL2},0) \2=(0,${NUM},0) \3=(0,${DEL2},0)"
Для тестов: css.coder
Last edited by YuS on Thu Jul 24, 2014 6:42 am, edited 2 times in total.

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

Post by YuS »

Serge Yolkin wrote:мой самый первый пост после регистрации на форуме (почти 4 года назад) содержал предложение, способное решить многие проблемы, бурно обсуждаемые в этой ветке.
Видимо есть какие-то сложности в реализации. Предложить - самое простое, что можно сделать, а вот реализовать... тут необходимо сочетание многих факторов: программная возможность в принципе, наличие времени у реализатора, а также наличие знаний, умений и желания/необходимости... наверное, пока что какие-то составляющие из этого списка отсутствуют. :)

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

YuS
В одинарных кавычках такая же подсветка, как и

Image

Еще думаю, свойства с префиксом лучше подсвечивать везде одним цветом -

Image

Вижу, вы стали добавлять свойства в список. Не очень пойму, где вы такие нашли? :)

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

Post by YuS »

Cuprum wrote:YuS
В одинарных кавычках такая же подсветка, как и

Image
Надо кавычки '' выключить в секции Quotes и добавить в секцию Folds по аналогии с "".
Cuprum wrote: Еще думаю, свойства с префиксом лучше подсвечивать везде одним цветом -

Image
После двоеточия, как правило, идут параметры свойств, поэтому мне показалось, что было бы нагляднее их подсвечивать другим цветом. Это получилось всё потому, что мне попадались файлы со стилями, где абсолютно всё выстроено одной сплошной строкой и там выделение одним цветом параметров и названий свойств, выглядит не очень красиво.
Cuprum wrote: Вижу, вы стали добавлять свойства в список. Не очень пойму, где вы такие нашли? :)
В качестве примеров брались стилевые файлы из Макстона (ну, разобранные на составляющие файлы с данными), там ещё и не такие параметры встречаются, вот некоторые и подобавлял. :)
В принципе, мешать они не будут, но добавлять их перестал пока, ввиду их разнообразия и несоответствия CSS, это скорее какие-то внутренние особенности браузера...

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

YuS wrote: После двоеточия, как правило, идут параметры свойств, поэтому мне показалось, что было бы нагляднее их подсвечивать другим цветом. Это получилось всё потому, что мне попадались файлы со стилями, где абсолютно всё выстроено одной сплошной строкой и там выделение одним цветом параметров и названий свойств, выглядит не очень красиво.
С CSS, где все упаковано в одну строку, как правило, напрямую вряд ли работают. Это уже окончательная версия, нужная браузерам. Давайте все таки оставим их одним цветом, т. е. будет акцент на том, что это именно версия с префиксом (неважно, свойство это или значение).
В качестве примеров брались стилевые файлы из Макстона (ну, разобранные на составляющие файлы с данными), там ещё и не такие параметры встречаются, вот некоторые и подобавлял. :)
В принципе, мешать они не будут, но добавлять их перестал пока, ввиду их разнообразия и несоответствия CSS, это скорее какие-то внутренние особенности браузера...
Я покопался, действительно это какие-то местечковые свойства, которых нет (пока?) в стандартах. Мое предложение - исключить их. Я уже начал составлять список свойств и значений,которые появились в CSS3 и уже официально поддерживаются хотя бы одним браузером.
А вот если эти псевдо-свойства оставить, то может быть путаница - вроде подсветка у них такая же как у других, а в стандарте их нет. А так будет понятно, если они не подсвечиваются, значит они не такие, как все :wink:

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

Post by YuS »

Cuprum wrote: С CSS, где все упаковано в одну строку, как правило, напрямую вряд ли работают.
Да почему? Парсер браузера не воспринимает переводы строк как разделители, для него важны фигурные скобки, запятая, точка с запятой и т.п. ... думаю, что даже в одну строку будут работать стили. При необходимости, это можно легко проверить...
Cuprum wrote: Давайте все таки оставим их одним цветом, т. е. будет акцент на том, что это именно версия с префиксом (неважно, свойство это или значение).
Легко. Надо здесь:

Code: Select all

0   "(?:(?<=,)|(?<=:)|(?<=\w\s))\s*?(-(?!\d)(?!-)(-|\w)+)" "\1=(0,${TYPE},0)"
изменить TYPE на TAG. Каждый может решить сам, надо ли ему разделение цветом этого момента или нет. По-моему, это более универсальное решение.
Cuprum wrote: Я покопался, действительно это какие-то местечковые свойства, которых нет (пока?) в стандартах. Мое предложение - исключить их. Я уже начал составлять список свойств и значений,которые появились в CSS3 и уже официально поддерживаются хотя бы одним браузером.
Согласен, надо вернуть в дефолтное состояние. Потому и приостановил расширение списка. Если будет готовый список, соответствующий правилам CSS, то его уже можно будет добавить.

Offline
Posts: 294
Joined: Tue Jul 27, 2010 11:18 pm

Post by Serge Yolkin »

YuS
- На счёт "самое простое" согласен, хотя и постарался обдумать предложение, прежде чем ляпнуть.
- Знания и умения Instructor'а у меня сомнений не вызывают :)
- Принципиальная возможность, на мой дилетантский взгляд, имеется, по крайней мере, изменения в алгоритме работы плагина не представляются принципиально невозможными (не намного сложнее фолдинга).
- Необходимость... Не знаю, но проблемы, с которыми часто сталкиваются авторы собственных файлов подсветки (грустная история, рассказанная этой веткой) такую необходимость подтверждают.
Остаются: желание и время. К сожалению, никакие доводы на эти пункты повлиять не могут. Остаётся ждать и надеяться :)

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

Post by YuS »

Serge Yolkin wrote:YuS
- На счёт "самое простое" согласен, хотя и постарался обдумать предложение, прежде чем ляпнуть.
Это я не в том смысле говорил, что предложения в виде "записок сумасшедшего"...
Функционал, возможно, предложен и неплохой, но не учтены последствия. Если я правильно понял, то для плагинов есть какие-то условия, они должны быть быстрыми и небольшими.
В общем, заметил, что тут в существующем-то виде, если переборщить с регэкспами, то становятся заметны тормоза на сравнительно небольших файлах. А если конфигурационные файлы подсветки размножатся, т.е. даже не удвоятся, а увеличатся в n раз (то бишь парсить придется файл столько раз, сколько будет альтернативных конфигураций) ... последствия непредсказуемы.
Serge Yolkin wrote: Остаются: желание и время. К сожалению, никакие доводы на эти пункты повлиять не могут. Остаётся ждать и надеяться :)
Думаю, что всё таки тут дело не только в нежелании и отсутствии времени...

PS
Serge Yolkin wrote:YuS
- Знания и умения Instructor'а у меня сомнений не вызывают :)
Этот пункт можно даже не рассматривать, тут сомнений никаких.
Имелось ввиду, что реализовать плагины, может ведь любой, исходники доступны.

Offline
Posts: 294
Joined: Tue Jul 27, 2010 11:18 pm

Post by Serge Yolkin »

YuS
Не-не-не! Парсить файл - только один раз! Тем более, что он построчно парсится. Дошли до начала альтернативного блока - продолжаем парсить линейно, но по новым правилам. Пусть, даже, будет ограничение: начало/конец блока - в начале строки, если необходимо.

И реализовать может не любой. Coder, кажется, самый серьёзный из плагинов. Вряд ли кто-то проникнется им на столько, чтобы внести серьёзные изменения. Да и две ветки одного плагина - беда. С двумя наборами файлов подсветки...

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

Post by YuS »

Serge Yolkin wrote:YuS
Не-не-не! Парсить файл - только один раз! Тем более, что он построчно парсится. Дошли до начала альтернативного блока - продолжаем парсить линейно, но по новым правилам. Пусть, даже, будет ограничение: начало/конец блока - в начале строки, если необходимо.
Угу, не-не-не - самое оно. :)
Это ведь не вьювер, это редактор, подсветка у него включается интерактивно... при наборе символа перечитывать конфиги, парсить на предмет наличия блока, сбрасывать переменные, значения функций, шаблоны регэкспов и т.п. - как-то сложновато. Имхо, вряд ли получится быстрая работа плагина при таком варианте. В общем, пока только автор может подтвердить или опровергнуть реализуемость этой хотелки...

Offline
Posts: 2
Joined: Tue Nov 01, 2011 8:07 am

Боковая панель Coder::CodeFold

Post by delure »

Есть возможность цветового выделения текста именно в боковой панели CodeFold?

Offline
Posts: 294
Joined: Tue Jul 27, 2010 11:18 pm

Post by Serge Yolkin »

YuS
При наборе символа - парсинг не сложнее, чем для фолдинга (можно включить в парсинг для фолдинга), а переменные и пр. загружать сразу, при открытии файла, и переключаться между готовыми наборами правил. Только динамически добавлять в альтернативные наборы самым первым правилом правило выхода из блока.

И, наверное, пора завязывать: пока не реализовано всем остальным это не интересно :)

P.S. Или мы уточняем ТЗ? :D Тогда готов...

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

Post by YuS »

Serge Yolkin wrote: При наборе символа - парсинг не сложнее, чем для фолдинга
Ну, мне сложно судить, насколько это просто... и да, наверное, лучше закругляться... :)
Serge Yolkin wrote: P.S. Или мы уточняем ТЗ? :D Тогда готов...
Было бы досадно составлять ТЗ в пустоту. По поводу реализации - мне это не по силам однозначно, а автор пока молчит... Вот если прояснит ситуацию (возможно или нет, будет или не будет хоть когда-нибудь), тогда при положительном ответе, можно и приступить к составлению ТЗ.

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

YuS wrote: Да почему? Парсер браузера не воспринимает переводы строк как разделители, для него важны фигурные скобки, запятая, точка с запятой и т.п. ... думаю, что даже в одну строку будут работать стили. При необходимости, это можно легко проверить...
Я разработчиков имел в виду ). Редактировать CSS вытянутый в одну строку проблематично. А браузер, конечно, скушает.

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

Code: Select all

5=1+4
Locked