Lenchik / Akelpad-syntax-highlighting

Syntax themes for AkelPad text editor with Coder plugin (AutoHotkey, AviSynth, bash, BibTeX, Grub4Dos, KiXtart, LaTeX, Makefile, nnCron, R, Smarty, plain text and many more other syntax highlighting)
32 stars 3 forks source link

description.coder: descript.ion & files.bbs #30

Closed Skif-off closed 8 years ago

Skif-off commented 8 years ago

Попросили набросать файл подсветки для descript.ion, дополнил files.bbs, собирался залить, а сейчас смотрю на эти четыре правила и думаю - а есть ли смысл?

Lenchik commented 8 years ago

Больше подсветок, хороших и разных!

Skif-off commented 8 years ago

Добавил

Drugoy commented 8 years ago

Я сначала не увидел куда вами был добавлен этот .coder и решил создать свой, и только сейчас заметил ваш. Как лучше поступить? На мой взгляд, мой кодер получился получше, вот сравнительная характеристика: Мой кодер работает только с files.bbs и descript.ion, (а ваш вместо этого сработает на любом файле с этими расширениями). Мой кодер умеет подсвечивать имена файлов и директорий, содержащих пробел (а ваш не умеет). Мой кодер умеет выделять расширения у файлов (а ваш не умеет). Мой кодер имеет парочку дополнительных разделителей (delimiters). Ваш кодер подсвечивает всё описание файла цветом ${COMM}, а мой так не умеет. В вашем кодере есть раскраска <encoding#>, я с таким не сталкивался и у меня этого нет.

Вы бы не могли попробовать мой кодер и сравнить? Предлагаю сделать гибрид из двух кодеров, вместив плюсы обоих. Считаю, что лучше выбрать имя файла description.coder (или даже decript.ion.coder), т. к. по де-факто стандарту файлами с описаниями других файлов могут быть только descript.ion или files.bbs, а не любой с такими расширениями.

Skif-off commented 8 years ago

Думаю, в конечном счёте стоит оставить ваш с вашим именем, а ion.coder убрать отсюда и с офсайта.

Сейчас сравнить не могу, только ближе к вечеру по Мск, пара слов:

Считаю, что лучше выбрать имя файла description.coder

Поддерживаю, только лучше _description.coder: т.к. указаны конкретные имена, нужно быть уверенным, что coder-файл подхватится первым.

или даже decript.ion.coder

Не стоит, наверное, ведь ключевое description (сначала так и назвал, не помню уже, зачем сократил).

Мой кодер работает только с files.bbs и descript.ion, (а ваш вместо этого сработает на любом файле с этими расширениями).

Да, это моя ошибка, хотя вероятность и низкая. К слову, исправился в Syslinux :)

Мой кодер умеет подсвечивать имена файлов и директорий, содержащих пробел (а ваш не умеет).

Мой и не должен и не уверен, что должен ваш: официальной спецификации не существует, но традиционно имена с пробелами берутся в кавычки - с кавычками мой подсветит.

Мой кодер умеет выделять расширения у файлов (а ваш не умеет).

Не стал, т.к. с равным успехом файл как может не иметь расширение, даже если имеет точку в имени, так и быть чем-нибудь эдаким, типа name.tar.gz - решил, что лучше никак, чем как получится.

Мой кодер имеет парочку дополнительных разделителей (delimiters).

В не знаю, а вот почему решил не трогать \n сейчас не вспомню, но, думаю, вы правы, стоит подсветить.

В вашем кодере есть раскраска <encoding#>, я с таким не сталкивался и у меня этого нет.

Обсуждалось в ЛС на Руборде, позже подчистил, поэтому ссылку не дам, возможно, собственная реализация какого-то ФМ (MultiCommander?), кодировка была UTF-8. Оставил, т.к. во-первых, не мешает, а во-вторых, в ТС 9.х Гислер вроде планировал добавить собственную реализацию с поддержкой юникода - какую-нибудь метку можно ожидать.

Ваш кодер подсвечивает всё описание файла цветом ${COMM}, а мой так не умеет.

Человек, попросивший сделать coder-файл, сразу предложил использовать цвет комментариев, попробовал варианты и показалось, что так удобнее. Нужно будет ещё сравнить.

P.S. Вертикальную черту | можно добавить, т.к. встречается в некоторых многострочных files.bbs.

P.P.S. Кажется, вспомнил, откуда <encoding#>: файлы описания в SciTE Ru.

Drugoy commented 8 years ago

Мой и не должен и не уверен, что должен ваш: официальной спецификации не существует, но традиционно имена с пробелами берутся в кавычки - с кавычками мой подсветит.

Я как раз и имел в виду с кавычками. Странно, у меня ваш не подсвечивал (я несколько раз проверял).

Не стал, т.к. с равным успехом файл как может не иметь расширение, даже если имеет точку в имени, так и быть чем-нибудь эдаким, типа name.tar.gz - решил, что лучше никак, чем как получится.

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

name.tar.gz

У этого файла расширение .gz :) А внутри этого архива может быть .tar архив, а может быть и что угодно ещё :)

Человек, попросивший сделать coder-файл, сразу предложил использовать цвет комментариев, попробовал варианты и показалось, что так удобнее. Нужно будет ещё сравнить.

Наверно и правда так удобнее, но тогда не получается выделить разделители \n и (по крайней мере у меня не получается :))

P.S. Вертикальную черту | можно добавить, т.к. встречается в некоторых многострочных files.bbs.

Я в курсе про неё, не знаю почему решил не добавлять её. Она в качестве new line разделителя используется, но только если употребляется после n пробелов с начала новой строки. Наверно, лучше её добавить QuotesRE правилом.

Skif-off commented 8 years ago

Мой кодер умеет подсвечивать имена файлов и директорий, содержащих пробел (а ваш не умеет). Я как раз и имел в виду с кавычками. Странно, у меня ваш не подсвечивал (я несколько раз проверял).

Ага, нашёл: второе правило в QuotesRE, проглядел пробел в первом наборе. Пофиксил.

но тогда не получается выделить разделители \n и �В (по крайней мере у меня не получается :))

У меня тоже :) Удалось подсветить в описании всё до \n (два правила в Quotes, с Parent ID), а в QuotesRE и/или с её участием вконец запутался. Зато вспомнил, _почему_ не добавил \n :)))))

В общем, не знаю, как быть: имя _description.coder и добавление конкретных имён файлов - безусловно нужное, подсветка расширения пригодится, но мне симпатичнее описание как комментарии. Склоняюсь к мысли, что стоит выпилить ion.coder и оставить ваш. Может быть у Lenchik есть мысли?

Lenchik commented 8 years ago

Я такие файлы редко открываю, но мысль-предложение есть. Слить в _description.coder, вобрав по-максимуму из обеих реализаций. По взаимоисключающим правкам можно как-то договориться, что оставить. По этим ссылкам можно выйти либо на примеры, либо на программы, которые работали с такими файлами (чтобы содрать у них какие примеры): http://stackoverflow.com/questions/1810398/descript-ion-file-spec http://kimludvigsen.dk/os2/os2/bbs/index.php http://archives.thebbs.org/ra52c.htm http://en.wikipedia.org/wiki/7-Zip#File_manager http://forum.farmanager.com/viewtopic.php?t=753 http://www.tckb.ru/wiki/Разница_между_files.bbs_и_descript.ion http://forum.wincmd.ru/viewtopic.php?t=868

Drugoy commented 8 years ago

@Skif-off я согласен, что подсветить цветом комментариев было бы красивей, но выделение разделителей, мне кажется, важней с точки зрения функциональности: пользователь прежде всего открывает в текстовом редакторе эти файлы для того, чтобы их редактировать, а не чтобы по их содержимому ориентироваться в папке (т.к. читать описание для файлов в папке - удобнее не уходя из файлового менеджера).

По этому пункту предлагаю Соломонов компромисс: можно в секции Colors: выставить первым значением ${COMM}. Это окрасит комментарии в соответствующий цвет (но затронет только цвет: начертание шрифта останется прежним).

М?

Skif-off commented 8 years ago

пользователь прежде всего открывает в текстовом редакторе эти файлы для того, чтобы их редактировать, а не чтобы по их содержимому ориентироваться в папке

Не всегда: в SciTE Ru, например, descript.ion в UTF-8 - ТС показывает кракозябры. Или descript.ion отсюда http://forum.farmanager.com/viewtopic.php?f=60&t=7075 иначе, чем в текстовом редакторе, смотреть не очень удобно. Но это, конечно, частные случаи.

предлагаю Соломонов компромисс:

Речь о BasicTextColor? Наверное, можно до кучи посмотреть с FontStyle = 3 в Font, но нужно будет во всех правилах заменить FontStyle = 0 на FontStyle = 1.

P.S. ion.coder с офсайта убран по моей просьбе, сейчас посмотрю, как удалить здесь.

Drugoy commented 8 years ago

Речь о BasicTextColor?

Да.

Наверное, можно до кучи посмотреть с FontStyle = 3 в Font, но нужно будет во всех правилах заменить FontStyle = 0 на FontStyle = 1.

О, а я-то туда пытался тоже ${COMM} впихнуть.

  • Предлагаю оставить <encoding#>, т.к. сейчас строка <encoding#> UTF-8 будет раскрашена как filename description, что не совсем верно.
  • Предложение добавить нижнее подчёркивание перед именем беру взад: по идее coder-файл и так будет почти в начале списка.

Cогласен.

Эээ, я дико извиняюсь, вместо отправки нового комментария я сдуру изменил ваш (даже не знал, что так можно).

Lenchik commented 8 years ago

@Skif-off @Drugoy Поправил ваши комментарии на основе почтовой рассылки.

Файлы удаляются коммитом с удалением файла.

Skif-off commented 8 years ago

Сейчас попробовал - круто, но в Colors ${COMM} нужно дописывать не только в значение BasicTextColor, но и в LineTextColor, иначе в активной строке цвет шрифта будет тот, который по умолчанию, а не ${COMM}:

Font:
;=================================================================
;FontStyle             FontSize              FaceName
;=================================================================
3                      ${HighLight_FontSize} ${HighLight_FaceName}

Colors:
 ;=============================================================================================================================================================================================================================================================================================================================================================================================================================
 ;BasicTextColor             BasicBkColor              SelTextColor              SelBkColor              LineTextColor              LineBkColor              LineBorderColor              AltTextColor              AltBkColor              AltBorderColor              ColumnColor              MarkerColor              CaretColor              UrlColor              ActiveUrlColor              VisitUrlColor
 ;=============================================================================================================================================================================================================================================================================================================================================================================================================================
${COMM}                     ${HighLight_BasicBkColor} ${HighLight_SelTextColor} ${HighLight_SelBkColor} ${COMM}                    ${HighLight_LineBkColor} ${HighLight_LineBorderColor} ${HighLight_AltTextColor} ${HighLight_AltBkColor} ${HighLight_AltBorderColor} ${HighLight_ColumnColor} ${HighLight_MarkerColor} ${HighLight_CaretColor} ${HighLight_UrlColor} ${HighLight_ActiveUrlColor} ${HighLight_VisitUrlColor}

С заменой в правилах Quotes и QuotesRE FontStyle = 0 на FontStyle = 1 (в Delimiters у себя оставил 0) получается шикарно. Как просто-то :))

Drugoy commented 8 years ago

@Lenchik спасибо.

Drugoy commented 8 years ago

Всё исправлено коммитом f8262ff67554463dae98b206b64be7bcb53e48b9.

Skif-off commented 8 years ago

@Drugoy Один из пользователей обнаружил проблему с цветом при использовании зебры, решение там же в Colors: для AltTextColor заменить цвет ${HighLight_AltTextColor} на ${COMM}

P.S. На офсайт не хотите залить?

Drugoy commented 8 years ago

@Skif-off Если предложенное решит проблему с зеброй (я ей не пользуюсь, не удосужился проверить раскраску с ней) - то смело вносите правки. А как на офсайт залить? Вроде как Instructor сам же отбирает .coder файлы, про этот репозиторий он вроде в курсе.

Skif-off commented 8 years ago

@Drugoy Как-то неудобно, предпочитаю не трогать не свои за редким исключением :) Больше идей ваших и выложили вы +возможно, у вас уже есть какие-то незалитые правки или своё видение, да тупо не хочу помешать или показаться неуместным.

А как на офсайт залить?

Просто написать Instructor, в ЛС или на мыло, с просьбой добавить файл и дать ссылку или прикрепить. Только по-хорошему - оформить комментарии с вашим авторством для решения проблем, датой для удобства, поддерживаемой версией AkelPad и ссылкой на репозиторий.

Drugoy commented 8 years ago

@Skif-off Абсолютно не мешаете, локальный незалитых правок нет. И вообще: гитхаб и придуман для совместного труда над общим делом :) Я вообще этот кодер набросал только потому что было свободное время, делать было нечего и я увидел этот незакрытый тикет и оценил, что смогу выполнить нужную работу. Если вам не трудно - сделайте это, пожалуйста, вы. Я даже на авторство не претендую (но и не возражаю, если укажете).