Colorer — гибкая раскраска синтаксиса в редакторе и др.

Здесь можно обсудить ваш любимый плагин.
User avatar
ctapmex
Posts: 1146
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 34 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by ctapmex »

Far Colorer — плагин подсветки синтаксиса в редакторе, основанный на Colorer Library Игоря Русских.
  • Изначальный автор плагина — Игорь Русских (lomecb, он же cail).
  • После того как плагин портирован на Far 2, поддержкой занимается Алексей Добрунов (ctapmex, он же на форуме ctapmex).
  • Официальная поддержка осуществляется через google-группу colorer_ru (на форуме бывает только ctapmex).
  • Актуальные версии основаны на Colorer Library версии take5.
GitHub | Анонс | Старые домашние страницы библиотеки Colorer и плагина для FAR

Плагин входит в дистрибутив Far Manager с v3.0.2948 (старые версии доступны тут)



Что не разжёвано в документации плагина:
  • Как подключить собственные цветовые стили *.hrd
    Пример: viewtopic.php?p=160386#p160386
  • Как подключить собственную схему:
    • используя пользовательский файл прототипов:
    • используя папку auto:
    • через пользовательский catalog.xml:
  • Как переопределить существующую схему
  • Как правильно "удалить" какую-либо стандартную схему
  • Как использовать относительные пути и переменные окружения
  • Если раскраска неправильна:
  • Неочевидные настройки: maxlinelength (в теме)
  • Тонкая настройка подсветки для отдельной схемы: в теме.
User avatar
John Doe
Бюрократ
Posts: 13075
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 42 times
Been thanked: 319 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by John Doe »

Latest post of the previous page:

Code: Select all

       "CrossVisible" - Видимость и тип креста в редакторе
         Возвращает текущий стиль креста и правила отображения для данного редактора.
          <OutParam1> Число: 0 - не отображается; 1 - вертикальный; 2 - горизонтальный; 3 - полный крест
          <OutParam2> Число: 0 - выключен; 1 - включен; 2 - согласно параметрам схемы
Тут похоже неточность: в <OutParam2> никогда не возвращается значение 2.

Code: Select all

         Если указаны дополнительные параметры, то изменяет стиль и правила отображения
          <Param1> - Число: 1 - вертикальный; 2 - горизонтальный; 3 - полный крест
А тут нет возможности указать вид креста "согласно параметрам схемы".

P.S.
Кажется выше уже обсуждалось. В этих параметрах наблюдается избыточность.
Например, если крест выключен (OutParam2=0), то первый параметр смысла не имеет.
Предалагаю поменять порядок параметров, и для удобства указать их названия:

Code: Select all

local isActive, shape = Plugin.SyncCall("...", "Editor", "CrossVisible", 0, 1)
Plugin.SyncCall("...", "Editor", "CrossVisible", isActive, shape)
https://t.me/FarManager — Telegram чат
User avatar
Роман Пехов
Posts: 16
Joined: Thu 26 Aug, 2010 12:30
Location: Екатеринбург
Has thanked: 2 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by Роман Пехов »

Здравствуйте!

Где можно загрузить двоичный модуль FarColorer версии 1.2.11.0 ?   Интересует последняя версия, поддерживающая Far 2.   Она, очевидно, не входит в состав Far 3.   На Гитхабе только исходный код, на SourceForge только очень старые версии, Гугль не находит.

(Как можно так жить вообще?)
Last edited by Роман Пехов on Mon 28 Sep, 2020 10:33, edited 2 times in total.
User avatar
ctapmex
Posts: 1146
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 34 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by ctapmex »

Роман Пехов,
всё там же на SourceForge

без наездов и других плохих чувств, просто обсудить - жить так , это как? как можно жить на старых версиях?
User avatar
Роман Пехов
Posts: 16
Joined: Thu 26 Aug, 2010 12:30
Location: Екатеринбург
Has thanked: 2 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by Роман Пехов »

ctapmex wrote: Mon 28 Sep, 2020 10:57 всё там же на SourceForge
При всём уважении, эта ссылка ведёт на архив   FarColorer_far2_1.0.2.11.7z
внутри которого лежит  colorer.dll  версии 1.0.2.11, датированный 2010-10-14

Я же, сбившись с ног, ищу модуль, построенный по исходному коду из гитхабного тэга 1.2.11.0, датированного 2019-01-24.

Судя по истории версий, искомая версия на восемь лет свежее, а также она работает под Far 2.
User avatar
ctapmex
Posts: 1146
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 34 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by ctapmex »

да, ошибся. решал такой вопрос по far первой версии, запутался.
версию под far2 можно взять из дистрибутива far3 нужной битности https://github.com/FarGroup/FarManager/ ... .5579.1513
User avatar
Роман Пехов
Posts: 16
Joined: Thu 26 Aug, 2010 12:30
Location: Екатеринбург
Has thanked: 2 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by Роман Пехов »

ctapmex wrote: Tue 29 Sep, 2020 10:49 версию под far2 можно взять из дистрибутива far3 нужной битности https://github.com/FarGroup/FarManager/ ... .5579.1513
Взял из архива Far.x86.3.0.5579.1513.32049a888a72cd940bb309195d8564a1244bcad9.7z
Версия 1.2.11.0 — та, что должна бы работать под Far 2, однако работать отказывается:

1.2.11.0 не запускается.png
1.2.11.0 не запускается.png (1.63 KiB) Viewed 663 times

Как быть?   Станете ли исправлять это или посоветуете другую версию?
User avatar
ctapmex
Posts: 1146
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 34 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by ctapmex »

забавно. я всё время думал , что версия совместима с far2 . а её просто никто не запускал. (либо у far2bis эти проверки были отключены ?)
с точки зрения правки кода сделать чтобы запустился не сложно. Но я не могу отвечать, что нет других проблем. Все молчали - значит все ок. а на самом деле никто не пользовался.
User avatar
Роман Пехов
Posts: 16
Joined: Thu 26 Aug, 2010 12:30
Location: Екатеринбург
Has thanked: 2 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by Роман Пехов »

ctapmex wrote: Tue 29 Sep, 2020 13:49 на самом деле никто не пользовался.
Я намерен пользоваться. Пожалуйста, добейтесь, чтоб у вас запускался и раскрашивал. И дайте мне полученный исходный код. С возможными проблемами буду возиться сам.

Если есть возможность, не форсируйте там требование слишком новой Visual Studio. Оставьте постарее.
citRiks
Posts: 1316
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 388 times
Been thanked: 80 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by citRiks »

Роман Пехов wrote: Tue 29 Sep, 2020 20:38 Если есть возможность, не форсируйте там требование слишком новой Visual Studio. Оставьте постарее.
Моя хата с краю в этом вопросе,
но вот нафига вам старая Визуал Студия? :)
и, что самое главное, нафига она Стармеху,
если он уже давно работает в новой визуал студии?
И если это затрудняет исполнение ваших же желаний,
даже при том что вы сказали "если есть возможность".
даже если есть возможность, то вам же будет дольше ждать

Все "имхо", у СтарМеха может быть другое мнение, и может я и сам чего не понимаю
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
citRiks
Posts: 1316
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 388 times
Been thanked: 80 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by citRiks »

ctapmex wrote: Sun 20 Sep, 2020 18:12 citRiks, выглядит это всё просто "жесть" . не обещаю, но я подумаю.
И на этом спасибо :) Но почему прямо "жесть"?
То что я предагал ранее (предавать через АПИ Колорера дополняющие блоки строк),
может быть стоит переформулировать с введением понятия "виртуальные строки".
Виртуальная строка это строка которая предполагает некое особое отношение.
На данный момент я расширил бы первоначальную "спрятанную" строку,
до второго сценария использования (типа использования),
приведу оба типа использования:

1.) Сценарий "спрятанная строка".
Строка является частью файла, учитывается для раскрасок, физически на редакторном экране НЕ видна.
То что мы говорили ранее - для фолдинга-коллапсинга

2.) Сценарий "дополнительная строка"
Строка НЕ является частью файла, НЕ учитывается для раскрасок, а физически на редакторном экране ДА видна.
Нужно для дифференциатора текста, в редакторе, которого сейчас нет и быть не может для ФАРа.
Не может быть без предлагаемых мною усовершенствований потому что
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
citRiks
Posts: 1316
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 388 times
Been thanked: 80 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by citRiks »

Приведу демонстрацию из компаратора (дифференциатора) WinMerge:
image.png
Виртуальные строки видны серым цветом, нарисованы для надобности сравнивания.
Уточню что сравнивалки файлов в ФАРе конечно есть, но они не редакторы,
а надо бы чтобы была возможность полноценно редактировать сравнивая в ФАРе
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
User avatar
ctapmex
Posts: 1146
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 34 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by ctapmex »

John Doe wrote: Wed 23 Sep, 2020 10:25 Plugin.Call("D2F36B62-A470-418d-83A3-ED7A3710E5B5", 13) выводить меню со списком настроек, и в новом апи соответствия этой команде пока нет.

Предлагаю Plugin.Call("D2F36B62-A470-418d-83A3-ED7A3710E5B5","Settings", "Menu").
ок
John Doe wrote: Wed 23 Sep, 2020 10:25 Можно сдедать этот параметр умолчательным, чтобы работало и без явного указания:
Plugin.Call("D2F36B62-A470-418d-83A3-ED7A3710E5B5","Settings")
John Doe wrote: Wed 23 Sep, 2020 10:36 Plugin.Call("D2F36B62-A470-418d-83A3-ED7A3710E5B5", 0) выводит главное меню колорера.
В новом апи соответствия нет.

Необходимости в общем и нет, т.к. того же эффекта можно добиться другой командой:

Code: Select all

Plugin.Menu("D2F36B62-A470-418d-83A3-ED7A3710E5B5")
Но возможно для полноты стоит добавить и в новое апи, например так: Plugin.Call("D2F36B62-A470-418d-83A3-ED7A3710E5B5", "Menu").
(и тоже сделать умолчательным)
пока старое api не сниму с поддержки, не буду плодить функции с одним параметром.
John Doe wrote: Wed 23 Sep, 2020 10:59 Plugin.Call("D2F36B62-A470-418d-83A3-ED7A3710E5B5", 12) перезагружает библиотеку схем, а в новом апи соответствия нет.

Есть Plugin.Call("D2F36B62-A470-418d-83A3-ED7A3710E5B5", "Settings", "Reload") (Перезагружает все настройки плагина и открытых редакторов).
это одно и то же . описание дополню
User avatar
ctapmex
Posts: 1146
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 34 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by ctapmex »

John Doe wrote: Wed 23 Sep, 2020 11:41

Code: Select all

       "CrossVisible" - Видимость и тип креста в редакторе
         Возвращает текущий стиль креста и правила отображения для данного редактора.
          <OutParam1> Число: 0 - не отображается; 1 - вертикальный; 2 - горизонтальный; 3 - полный крест
          <OutParam2> Число: 0 - выключен; 1 - включен; 2 - согласно параметрам схемы
Тут похоже неточность: в <OutParam2> никогда не возвращается значение 2.
возвращает. если в настройках плагина указано отображение согласно параметрам схемы, то тут возвращается 2.
John Doe wrote: Wed 23 Sep, 2020 11:41

Code: Select all

         Если указаны дополнительные параметры, то изменяет стиль и правила отображения
          <Param1> - Число: 1 - вертикальный; 2 - горизонтальный; 3 - полный крест
А тут нет возможности указать вид креста "согласно параметрам схемы".

P.S.
Кажется выше уже обсуждалось. В этих параметрах наблюдается избыточность.
Например, если крест выключен (OutParam2=0), то первый параметр смысла не имеет.
Предалагаю поменять порядок параметров, и для удобства указать их названия:

Code: Select all

local isActive, shape = Plugin.SyncCall("...", "Editor", "CrossVisible", 0, 1)
Plugin.SyncCall("...", "Editor", "CrossVisible", isActive, shape)
данный набор параметров управляет аналогичными параметрами из окна настроек. и логика действия такая же. Т.е. если установлено 2 для правил отображения, то первый параметр игнорируется.
возможно выглядит коряво, но применял именно логику окна настроек.
переделывать api, меняя порядок , уже поздновато. его используют, и такие перемены сломают скрипты
User avatar
ctapmex
Posts: 1146
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 34 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by ctapmex »

Роман Пехов wrote: Tue 29 Sep, 2020 20:38
ctapmex wrote: Tue 29 Sep, 2020 13:49 на самом деле никто не пользовался.
Я намерен пользоваться. Пожалуйста, добейтесь, чтоб у вас запускался и раскрашивал. И дайте мне полученный исходный код. С возможными проблемами буду возиться сам.

Если есть возможность, не форсируйте там требование слишком новой Visual Studio. Оставьте постарее.
посмотрел я , что было завязано на строку из описания "удалена поддержка far2".
поддержки far2 не было уже лет 6, как минимум. API сильно менялось, и плагин работать не будет. а функцию эту оставляли для переходного периода, если кто случайно запустит плагин для far3 на far2.

в общем расстрою вас, но тут ничем не помочь. используйте плагин старой версии
User avatar
John Doe
Бюрократ
Posts: 13075
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 42 times
Been thanked: 319 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by John Doe »

ctapmex wrote: Sun 04 Oct, 2020 16:11 возможно выглядит коряво, но применял именно логику окна настроек.
Не просто выглядит, а реально коряво, и с этим будет сталкиваться каждый кто попытается использовать.
Имхо это заслуживает улучшения, даже если и потребуется пару скриптов адаптировать.
https://t.me/FarManager — Telegram чат
User avatar
Роман Пехов
Posts: 16
Joined: Thu 26 Aug, 2010 12:30
Location: Екатеринбург
Has thanked: 2 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by Роман Пехов »

ctapmex wrote: Sun 04 Oct, 2020 17:17 используйте плагин старой версии
Тогда мне бы исходный код самый свежий из работающих в Far 2. Раз уж вы разобрались в этой истории, наверное не составит труда дать ссылку или назвать номер последней версии, которая таки живёт в Фар 2.
Post Reply

Return to “Обсуждение плагинов”