Coder plugin (1)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

Товарищи, смыслящие в подсветках! Есть ли возможность сделать такую подсветку? Если есть - накидайте, пожалуйста!
Подсветка очень простая: есть файлы логов, имеющие вид
(код события)____(дата)____(время)____(текст)
____ - это табуляция
Хочется иметь подсветку разными цветами в зависимости от кода события; всего кодов - 5. Буду очень благодарен.

Offline
Posts: 19
Joined: Mon Feb 15, 2010 9:00 am

Post by iglezz »

Fr0sT

Code: Select all

Extensions:
test

Font:
0	0	""

Colors:
0	0	0	0	0	0	0	0	0	0

Quotes:
512	1	#006600	#EEFFEE	0001	""	""	""	""
512	1	#223365	#FFEEEE	0002	""	""	""	""
512	1	#446644	#FFFFEE	0003	""	""	""	""
512	1	#444499	#EEFFFF	0004	""	""	""	""
512	1	#664400	#EEEEFF	0005	""	""	""	""
Расширение вместо test надо своё поставить.
0001...0005 - Это заменить на коды событий
Ну и раскрасить на свой вкус...
первый #000000 — цвет текста, второй #000000 — цвет фона (заменить на 0 чтобы вернуть цвет по умолчанию)

Содержимое перенести в пустой документ акелпада, произвести замену трёх пробелов " " на табуляцию"\t" и сохранить в кодировке 1200 (UTF-16 LE) под именем типа "МойПростойЛог.coder" в каталоге ./AkelFiles/Plugs/Coder

Должно работать (у меня работает), возможно не сразу (толи винда дурит, толи акел — хз, вроде удаление файла cache в каталоге /Coder помогло).

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

iglezz, премного благодарствую! Работает :)

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

1. В txt.coder написано

Code: Select all

;--Cyrillic alphabet--
а если глянуть, то там не вся кириллица, да(даже не вся самая распространенная). Добавить бы следующие буквы: "Ґ" "І" "Ї" "Є" (коды в UTF16LE<0490><0406><0407><0404>), (кириллицу других языков я не знаю, но в Юникод она в диапазоне 0400-04FF ) Посмотреть и выбрать можно ТУТ: !!!!PDF 15MB!!!!

2. А можно API интерфейс к плагину: спросить, какие расширения он знает?

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Насчет подсветки xml. Вот такой фрагмент:

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<root>
	<node attr1='val1'
		<!-- comment1 --->
		still comment1 -->
		attr2='val2'
		/>
</root>
coder захватывает первый --> (тот который в составе --->) как закрывающий комментарий, и соотв. вторую строку уже не считает комментарием и не подсвечивает её соответственными настройкам. А в спецификации точно определенно что "--->" не может быть концом комментария. Как бы правило подобрать?

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

Post by opk44 »

FeyFre wrote:1. В txt.coder ... не вся кириллица, да(даже не вся самая распространенная). ... кириллицу других языков я не знаю ...
Не могу согласиться. С моей точки зрения, использование "обобщенной кириллицы" неоправданно. Т.е. при работе исключительно с русским текстом, наличие в нем описанных символов совершенно не характерно, и то что они выделяются в тексте особым образом - это правильно. Совсем другое дело, если обрабатывается текст на украинском. Тогда да, пестрота станет мешать.
Но как сейчас украинцам мешает отсутствие указанных символов (приходится добавлять), так после их добавления они будут мешать русским (придется удалять). Поэтому предлагаю не делать упор на необходимости общего txt.coder "для всех кириллиц", а сделать вилку. Например, пусть будут txt-rus.coder (идентичный текущему txt.coder) для русских, txt-ua.coder c указанными FeyFre символами для украинцев, и т.д. (txt-xx.coder) с учетом особенностей национальных алфавитов. Тогда всем будет хорошо.
P.S. Не совсем корректный пример, но появился же "cpp-rus.coder".

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

В случае вилки смешанные тексты будут не читаемые. А они попадаются значительно чаще, чем чистые.
А если вспомнить ещё Немцев и прочие веропейские языки которые пишут латиницей?
Ну да ладно. Я то лично себе в любом случае подредактирую...
P.S. Не совсем корректный пример, но появился же "cpp-rus.coder"
cpp-rus.coder отличается от cpp.coder только языком описательных комментариев, так что разницы нету.

Offline
Posts: 767
Joined: Mon Sep 28, 2009 10:03 am
Location: Minsk, Belarus

Post by se7h »

opk44
не совсем уловил: как украинские кириллические символы могут помешать русским текстам, если они в них даже не встречаются?

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

Post by opk44 »

se7h wrote:opk44
не совсем уловил: как украинские кириллические символы могут помешать русским текстам, если они в них даже не встречаются?
Если не встретятся, то не помешают. Ну а ЕСЛИ встретятся?
Тогда при текущем состоянии "txt.coder" они будут бросаться в глаза за счет разности в подсветке. И для русского текста, ЭТО ПРАВИЛЬНО, поскольку свидетельствует, скорее всего, об ошибке в тексте.
Теперь представьте ту же ситуацию, но Вы имеете модифицированный "txt.coder". ЕСЛИ включенные символы встретятся, то они просто потеряются среди нормального текста. Заметить их будет сложнее. Вот что я имел и имею в виду.

Offline
Posts: 767
Joined: Mon Sep 28, 2009 10:03 am
Location: Minsk, Belarus

Post by se7h »

opk44
Для проверки правописания существует плагин (или скрипт) SpellCheck

ИМО вся кириллица должна быть одного цвета, а латиница - другого

до кучи ещё буквы белорусского алфавита: І <0406> і <0456> Ў <040E> ў <045E>

добавлено:
и ещё в белорусском апостроф ’ <2019> вместо твёрдого знака
Last edited by se7h on Tue Dec 28, 2010 2:36 pm, edited 1 time in total.

Offline
Posts: 3
Joined: Tue Dec 28, 2010 1:36 pm

Post by binariti »

Ну раз уж на то пошло и плагин строит иерархическую структуру, то почему бы не включить в него и поддержку автоотступа для вкладываемых в структуру блоков? Чтобы при нажатии на Enter каретка переносилась не в начало строки, а ставилась прямо под началом предыдущей строки, если та отодвинута пробелами или табами от края экрана.
Логично так же и добавить такой функционал, который расставлял бы отступы автоматически при закрытии текущего блока или для всего файла сразу, при нажатии соответствующей кнопки.
Да и еще, по поводу дерева иерархии, которое справа отображается. Сейчас, когда я гуляю по тексту, дерево автоматически сдвигает позицию, следует за кареткой. Для всего списка область видимости дерева ставится так, чтобы текущий выбранный блок находился вплотную к левой части области экрана, вот так: http://dl.dropbox.com/u/585158/left.JPG Но это же неудобно. Нужно сделать так, чтобы область видимости по горизонтали устанавливалась на начало родительского блока, а не на начало текущего блока. Или лучше вообще перепрыгнуть через два уровня иерархии. Иначе не ясно, где мы находимся, информативность правой панели сильно падает и приходится все время вручную передвигать ползунок обзора влево.

Offline
Posts: 767
Joined: Mon Sep 28, 2009 10:03 am
Location: Minsk, Belarus

Post by se7h »

Ну раз уж на то пошло и плагин строит иерархическую структуру, то почему бы не включить в него и поддержку автоотступа для вкладываемых в структуру блоков? Чтобы при нажатии на Enter каретка переносилась не в начало строки, а ставилась прямо под началом предыдущей строки, если та отодвинута пробелами или табами от края экрана.
viewtopic.php?p=6164#p6164

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

FeyFre
Можно указать "Escape char" "-" или в "Skips:" добавить что-то типа "---" ">".

binariti
Но это же неудобно. Нужно сделать так, чтобы область видимости по горизонтали устанавливалась на начало родительского блока, а не на начало текущего блока.
Реализовано. После релиза 4.5.2 будет доступно.

Offline
Posts: 19
Joined: Mon Feb 15, 2010 9:00 am

Post by iglezz »

Хотелось бы комментария для чего предназначены все этим STR, COMM, VAR, DEL1, DEL2, TYPE, OP, TAG, ATTR, IF, AREA, NUM и так далее?

Как я понимаю:
STR == string
COMM == comment
VAR == variable
DEL1, DEL2 == delimiters
NUM == number

А остальные?
Понятно что я могу использовать эти переменные как угодно, но хочется чтобы какая-то логика и порядок соблюдались в .coder файлах...

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

Post by opk44 »

se7h wrote:opk44
Для проверки правописания существует плагин (или скрипт) SpellCheck
Мне о том ведомо. Но проверка правописания это куда как более кропотливая работа, чем простая визуализация ошибок в тексте. Визуализация эффективнее если в руки попадает текст, где слова содержат некоторый процент "похожих" символов иного алфавита (следствие некачественного OCR или по иным причинам). Тогда, например, латинские буквы "o" в слове "пoскoльку" будут с включенной подсветкой гореть как кошачьи глаза ночью (скопируйте следующий текст ("пoскoльку", "поскoлькy", "пoсколькy", "пocкольку", "поcкoльку", "поcколькy") в редактор и убедитесь). А проверка правописания на этом же примере выдаст пользователю лишь сообщение об "отсутствии слова в словаре". Как говорится "почувствуйте разницу".
Можете возразить, что приведенный пример составлен для латинских и кириллических символов, а для кириллических и кириллических такого, как Вы полагаете "не бывает".
Бывает! Например символы ҖҚ (<0496><049A>) являются "кириллическим" лишь в самом общем смысле, но не входят ни в белорусский ни в украинский ни в русский национальные алфавиты (а вот окажись здесь черкес или уйгур, то опять речь зайдет о "необходимости включения").
При этом визуально (без различия в подсветке), варианты написания "ҖЭҚ" и "ЖЭК" (<0496><042D><049A> и <0416><042D><041A>) в большом куске текста мало отличимы.
Но если для "чтения глазами" это и не большая проблема, то при отправке текста с такими символами какому-нибудь речевому движку, или при записи в базу данных для последующей обработки, при индексировании и т.д. и т.п. это может привести к непредсказуемым последствиям.
se7h wrote:ИМО вся кириллица должна быть одного цвета, а латиница - другого
Не хотите со мной соглашаться – Ваше право, но прежде прошу открыть Википедию на странице "Кириллица" (http://ru.wikipedia.org/wiki/Кириллица), где сказано буквально следующее: "(говорят о русской, сербской и т. п. кириллицах; называть же «кириллическим алфавитом» формальное объединение нескольких или всех национальных кириллиц некорректно)".
Поэтому признайте, что и в моей точке зрения какой-то смысл есть, а не просто "желание добиться своего".
Единственные, кому действительно может быть полезным смешение всех кириллиц, это упомянутые FeyFre "немцы и прочие европейцы, пишущие на латинице". С их точки зрения, наверное, совершенно индифферентно чья будет кириллица – украинская, русская, белорусская, македонская. Для них это "шум", который должен отличаться от латиницы и только. Я же не немец. Мне не все равно.
se7h wrote:до кучи ещё буквы белорусского алфавита: І <0406> і <0456> Ў <040E> ў <045E>
Вот Вы хотите при письме по-белорусски или по-украински, чтобы, буква "і" в словах не выпячивалась, как в этом примере ( ПОДАРУНОК НА ІМЕНИНИ Карпо Петрович Зайчик, околодочний надзиратель, вернувся нарешті з служби додому. Фу-ти! Ну-ти!.. Він був голоден і злий. ... ). Для украинского и белорусского – это правильно, а для русского – нет. Для белорусского скорее всего ошибкой будет наличие в тесте незамеченных украинских букв "Ї", а для украинского – "Ў", а для русского – наличие обеих букв ошибка. Для украинского было бы полезно выделять цветом разницу между своей "Ґ" и македонской "Ѓ", а для русского и белорусского и та и другая в равной степени "нехороши".
Эти "мелкие отличия" я и предлагаю учитывать в отдельных "национальных" coder-файлах (txt-rus.coder, txt-bel.coder, txt-ua.coder, ... ), а не включать все в "общий".
se7h wrote:добавлено:
и ещё в белорусском апостроф ’ <2019> вместо твёрдого знака
Приведенный Вами же пример с белорусским апострофом (<2019> вместо твердого знака в русском) хорош в том смысле, что с точки зрения "белорусской кириллицы" – это буква кириллицы, а с точки зрения "русской и украинской кириллиц" – это знак пунктуации (right single quotation mark). Я считаю, что здесь Вы как раз "льёте воду на мою мельницу".
Еще есть что обсуждать в плане статистики (например адаптацию скрипта Infocatcher "textStatistics.js" для белорусского и украинского).
Locked