Coder plugin (3)

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

langlois
Вроде можно выбрать какой-либо модифицированный шрифт (с суффиксом " Mod") - должны лежать в папке \AkelFiles\Plugs\Fonts\ и включен плагин Fonts - для этого они и делались. Единственный недостаток такого подхода - эти шрифты на некоторых компах почему-то выглядят более блёклыми, чем оригинальные.
Вроде где-то в параметрах проги был спец. параметр для задания отображения каждого символа с одинаковой фиксированной шириной, даже для немоноширинных шрифтов.

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

VladSh wrote:...был спец. параметр для задания отображения каждого символа с одинаковой фиксированной шириной, даже для немоноширинных шрифтов.
Имеется в виду "FixedCharWidth". Но в данном случае это крайне спорное решение. Искусственное превращение пропорционального шрифта (Tahoma) в "квазимоноширинный" делает любой текст практически нечитаемым. Т.е. решая одну проблему, вы тут же создаете другую.

Offline
Posts: 7
Joined: Sat Feb 18, 2017 7:44 am

Post by anion23 »

Помогите, пожалуйста, разобраться со следующей проблемой.
Нужно реализовать подсветку слова, обрамленного тегами, таким образом: теги подсвечиваются одним цветом и имеют обычный стиль отображения, а слово между ними - другим цветом и имеет стиль отображения Italic.
Я пробовал различные комбинации параметров Flags, но до конца решить не удалось - получилось сделать так, как описано выше, но первый тег, как я не бился, остается без подсветки.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

anion23
Пример можно? Какой язык, секция, для какого правила флаги?

Offline
Posts: 7
Joined: Sat Feb 18, 2017 7:44 am

Post by anion23 »

Skif_off
например, язык html
Что нужно подсветить:
<i>слово</i>

Секция "HighLight " в файле html.coder (использовал комбинации параметров Flags (sum of the members) в подразделе Quotes)

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

anion23
Удалось заставить так:

Code: Select all

;388=4+128+256
388	3	0	0	">"	"</i>"	""	""	"<>"	0	0
Но, честно говоря, мне сложно оценить последствия подобного укорачивания начала диапазона. По-хорошему, лучше дождаться Instructor или кого-нибудь, кто лучше разобрался с html.coder.


2All
Куда бы добавить, что, на странице с плагинами есть ссылка на доп. файлы подсветки синтаксиса, там есть полностью переведённый cpp-rus.coder? Первый пост темы если?

Offline
Posts: 7
Joined: Sat Feb 18, 2017 7:44 am

Post by anion23 »

Skif_off
Спасибо за быстрый ответ! Указанное вами правило работает как надо. Но оно решает только половину задачи. Мне нужно, чтобы теги к тому же отображались другим цветом, например светло серым. И когда я добавляю правила для раскрашивания этих тегов, то ваше перестает работать. Теги становятся светло серыми, но наклонное начертание слова между тегами исчезает. Не могу разобраться, что не так. Для раскрашивания пишу:

Code: Select all

;5=1+4
5	0	#A9A9A9	0	"<"	">"	""	"i"	""
;5=1+4
5	0	#A9A9A9	0	"<"	">"	""	"/i"	""
[/code]

Если поставить 388 вместо 5, то конфликт пропадает, но угловые скобки естественно не захватываются и цвет не меняют.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

anion23
В html.coder вовсю используются новые фичи плагина (ParentID/RuleID), поэтому не всё так очевидно. Сами угловые скобки подсвечиваются здесь

Code: Select all

Delimiters:
1	0	${DEL1}	0	<          0
1	0	${DEL1}	0	>          0
а теги здесь

Code: Select all

Words:
0	0	${TAG}	0	i                              3
Можно для нужных вам заменить ${TAG} на ваш #A9A9A9.

Или нужно целиком, вместе с угловыми скобками? Полагаю, изменить так, как делаете вы, не получится, т.к. ваши правила идут после

Code: Select all

401	0	0	0	"<"	""	""	""	""	0	3
А если как-то так

Code: Select all

5	0	#A9A9A9	0	"<"	">"	""	"/iI"	""	""	3	0
попробовать? Не могу сейчас проверить.
Или так

Code: Select all

QuotesRE:
1	"</?[iI]>"	"\0=(0,#A9A9A9,0)"	0	0
Или, возможно, так

Code: Select all

QuotesRE:
1	"</?[iI]>"	"\0=(0,#A9A9A9,0)"	3	0
К слову, можно задавать не только цвет и стиль текста, но и фон - в ряде случаев получается нагляднее.

P.S. Вообще, не уверен, что этот coder-файл стоит ещё сильнее усложнять...

Offline
Posts: 7
Joined: Sat Feb 18, 2017 7:44 am

Post by anion23 »

Skif_off
Спасибо за информацию! Буду разбираться...
А вы могли бы вкратце разъяснить, как этими фичами (ParentID/RuleID) пользоваться или подсказать, где можно найти описание?

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

anion23
Объясняю я не очень хорошо :) Описание иерархии есть в Coder-Rus.txt, с наглядным примером, ну и некоторые конкретные вопросы уже в теме разбирались.

Offline
Posts: 7
Joined: Sat Feb 18, 2017 7:44 am

Post by anion23 »

Skif_off
Хорошо, посмотрю в теме. Большое спасибо за помощь!

Offline
Posts: 7
Joined: Sat Feb 18, 2017 7:44 am

Post by anion23 »

Skif_off
Не знаю, насколько корявым, с точки зрения специалиста, получилось решение задачи, но подсветка начала работать как задумывалось: теги отображаются нормальным стилем и светло серым цветом, все что между тегами отображается стандартным цветом и соответствующим стилем (наклонным или полужирным). Вот код:

Code: Select all

Quotes:
;===================================================================================
;Flags  Font    Color   Color   Quote   Quote   Escape  Quote   Quote   Parent  Rule
;       style   text    bkgrnd  start   end     char    include exclude ID      ID
;===================================================================================
388	1	0	0	"<i>"	"</i>"	""	""	""	0	97
388	1	0	0	"<b>"	"</b>"	""	""	""	0	98


QuotesRE:
;========================================================================================================
;Flags  Pattern                      \BackRef=(FontStyle,ColorText,ColorBk) \BackRef=...  ParentID RuleID
;========================================================================================================
1	'(?<=i\>)(.*?)(?=\<\/i)'	'\1=(3,0,0)'	97	0
1	'(?<=b\>)(.*?)(?=\<\/b)'	'\1=(2,0,0)'	98	0

Delimiters:
;===============================================
;Flags  Font    Color   Color   Char(s)   Parent
;       style   text    bkgrnd            ID
;===============================================
1	1	#CCCCCC	0	"<i>"
1	1	#CCCCCC	0	"</i>"
1	1	#CCCCCC	0	"<b>"
1	1	#CCCCCC	0	"</b>"

[/code]

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

anion23
Тоже не знаю :) Замечу: может быть проблема, если теги написаны в верхнем регистре, т.к. вы используете флаг 1(с учётом регистра) в QuotesRE и Delimiters

Если это сознательный выбор и т.к. Регистрозависимое сравнение быстрее регистронезависимого., то есть смысл добавить флаг 1 и в правила в Quotes.

В Quotes можно поставить Font style = 0, единица там ни к чему, вы же задаёте стиль для тегов в Delimiters, а содержимое тегов - в QuotesRE.

Offline
Posts: 7
Joined: Sat Feb 18, 2017 7:44 am

Post by anion23 »

Skif_off
есть смысл добавить флаг 1 и в правила в Quotes.

В Quotes можно поставить Font style = 0, единица там ни к чему
Согласен, так будет правильней. Спасибо!

Offline
Posts: 2
Joined: Mon Feb 27, 2017 10:47 am

пхп подсветка не работает

Post by Antonio »

Подскажите, почему подсветка пхп не работает?
Акелпад со всеми плагинами обновил сегодня (4.9.8 )
Все конфиги дефолтные (php.coder и html.coder, вообще ни один не менял)
Видно, что слова определяет по группам, яваскрипт и хтмл подсветку и свертывание определяет, а пхп - нет
На пхп файле автоматом выбирает подсветку - HTML и PHP
винда - 8х64
Яваскрипт на скриншоте прикрутил так, чтобы было видно, что в принципе плагин работает. Ясно дело, что он разметку берет из js.coder
Алиас из html.coder вроде как намекает на .php_for_coder, так что, по идее, далее разметка должна браться из php.coder, однако этого не происходит.
Если изменить расширение файла с php на php_for_coder, файл открывается как обычный текст :(

Image
Post Reply