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

Здесь можно обсудить ваш любимый плагин.
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 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 (старые версии доступны тут)
Поддержка Windows XP
Начиная с версии FarColorer 1.4.0 в плагине прекращена поддержка Windows XP. Полностью поддерживается и тестируется на Windows 10. Несколько версий Windows назад - по запросу. Но кажется, что всегда должно работать начиная с Windows 2008.
Far Manager 3.0.5797 (2021.05.10) и более новые в дистрибутиве содержат FarColorer версии 1.4.
Поддержка Windows XP осталась только на FarColorer 1.3.x. В данной ветке будут выходить только критичные исправления. Скачать можно на GitHub странице плагина. Последняя версия 1.3.30



Что не разжёвано в документации плагина:
  • Как подключить собственные цветовые стили *.hrd
  • Как подключить собственную схему:
    • используя пользовательский файл прототипов:
    • используя папку auto:
    • через пользовательский catalog.xml:
  • Как переопределить существующую схему
  • Как правильно "удалить" какую-либо стандартную схему
  • Как использовать относительные пути и переменные окружения
  • Если раскраска неправильна:
  • Неочевидные настройки: maxlinelength (в теме)
  • Тонкая настройка подсветки для отдельной схемы: в теме.
Last edited by ctapmex on Mon 18 Oct, 2021 19:17, edited 5 times in total.
d.k.Brazz
Posts: 176
Joined: Wed 07 Sep, 2005 17:02
Location: дети берутся?

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

Post by d.k.Brazz »

Latest post of the previous page:

Собрал колорер
три версии собраны под три архитектуры:
- I386 - без оптимизаций.
- SSE - не ниже Pentium III, AthlonXP, Duron (> 1000 МГц),
- SSE2 - Pentium4, Athlon x64, Sempron (Socket 754)

Вот интересно - насколько оно влияет на производительность?

UPD: исправлена утечка памяти, файлы перезалиты
Attachments
colorer.bin.7z
колорер.длл
(203.81 KiB) Downloaded 351 times
Last edited by d.k.Brazz on Wed 24 Jun, 2009 13:04, edited 1 time in total.
User avatar
GrAnD
Posts: 351
Joined: Thu 13 Oct, 2005 23:47
Location: Amsterdam
Been thanked: 3 times
Contact:

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

Post by GrAnD »

А на каком svn лежат исходники Colorer, подскажите пожалуйста.
Игорь Юдинцев
Posts: 726
Joined: Sun 03 Apr, 2005 22:00
Location: Казань
Been thanked: 2 times

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

Post by Игорь Юдинцев »

d.k.Brazz
да, в моей сборке была проблема с памятью.

All: качайте сборку от d.k.Brazz
GrAnD wrote:А на каком svn лежат исходники Colorer, подскажите пожалуйста.
https://colorer.svn.sourceforge.net/svnroot/colorer
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

d.k.Brazz wrote:Все надо делать самому
Патч к транку колорера

Code: Select all

Index: FarEditorSet.cpp
===================================================================
--- FarEditorSet.cpp	(revision 1107)
+++ FarEditorSet.cpp	(working copy)
@@ -539,7 +539,19 @@
     editor = new FarEditor(info, parserFactory);
     farEditorInstances.put(&SString(ei.EditorID), editor);
 
-    DString fnpath(ei.FileName);
+    LPWSTR FileName=NULL;
+    size_t FileNameSize=info->EditorControl(ECTL_GETFILENAME,NULL);
+    if(FileNameSize)
+    {
+      FileName=new wchar_t[FileNameSize];
+      if(FileName)
+      {
+        info->EditorControl(ECTL_GETFILENAME,FileName);
+      }
+    }
+
+    DString fnpath(FileName);
+
     int slash_idx = fnpath.lastIndexOf('\\');
     if (slash_idx == -1) slash_idx = fnpath.lastIndexOf('/');
     DString fn = DString(fnpath, slash_idx+1);
upd: ну и естественно в trunk\colorer\src\shared\far2plugin актуальные хидеры подкинуть
код то рабочий, но вот только он добавляет новую утечку памяти.
FileName надо освободить.
например там же ниже

Code: Select all

   
.....
 editor->setMaxTime(rMaxTime);
delete[] FileName;
d.k.Brazz
Posts: 176
Joined: Wed 07 Sep, 2005 17:02
Location: дети берутся?

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

Post by d.k.Brazz »

sonar wrote:код то рабочий, но вот только он добавляет новую утечку памяти.
FileName надо освободить.
например там же ниже
Спасибо
поправил, файлы перезалил в свой предыдущий пост
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

d.k.Brazz
у тебя случаем при выходе из фара в SharedInputSource.h падение не происходит?
до этого на работе все нормально было. пришел домой все с нуля сделал (исходники с svn), сделал это изменение и все , падает постоянно
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

поковырялся в исходниках colorer, в текущей ревизии из svn (1107), попытался адаптировать под текущий far2. все изменения прикрепил ниже. ну и отправил письмо автору плагина, может быть внесет изменения.
Готовые сборки не выкладываю, т.к. не знаю с какими параметрами обычно собирают этот плагин для фара.
Для того чтобы плагин, собранный из текущих исходников, работал под far2 нужно сделать следующее
1. файлы в colorer/src/shared/far2plugin/ заменить на файлы от сюда
http://www.farmanager.com/svn/trunk/plu ... n/unicode/
2. применить к файлу colorer/src/pcolorer2/FarEditorSet.cpp патч
FarEditorSet.diff

далее найденные мной утечки памяти и ошибки
1. эта ошибка также не давала работать под новым far2
в файле colorer/src/shared/common/io/SharedInputSource.h функция
delref вызывала AV , когда пыталась вернуть только что освобожденную
переменную. патч SharedInputSource.diff
2. утечка памяти в colorer/src/pcolorer2/FarEditor.cpp
патч FarEditor.diff
3. утечка памяти и неправильная обработка исключений в
colorer/src/shared/common/io/JARInputSource.cpp
патч JARInputSource.diff
Attachments
diff.zip
(1.72 KiB) Downloaded 270 times
d.k.Brazz
Posts: 176
Joined: Wed 07 Sep, 2005 17:02
Location: дети берутся?

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

Post by d.k.Brazz »

sonar wrote:т.к. не знаю с какими параметрами обычно собирают этот плагин для фара.
там же makefile.vs есть, в нем все и прописано
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

ага, теперь понял
просто в pcolorer2.vcproj настройки только для debug версии были

пришел ответ от Игоря Русских , обещал в ближайшее время внести изменения в svn
d.k.Brazz
Posts: 176
Joined: Wed 07 Sep, 2005 17:02
Location: дети берутся?

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

Post by d.k.Brazz »

sonar wrote:d.k.Brazz
у тебя случаем при выходе из фара в SharedInputSource.h падение не происходит?
до этого на работе все нормально было. пришел домой все с нуля сделал (исходники с svn), сделал это изменение и все , падает постоянно
Падения фара иногда случаются, особенно когда он по нескольку суток не закрывается. Может и из-за колорера.
В последнее время не падает. Вероятно из-за частых обновлений не успевает много утечь.
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

d.k.Brazz wrote:
sonar wrote:d.k.Brazz
у тебя случаем при выходе из фара в SharedInputSource.h падение не происходит?
до этого на работе все нормально было. пришел домой все с нуля сделал (исходники с svn), сделал это изменение и все , падает постоянно
Падения фара иногда случаются, особенно когда он по нескольку суток не закрывается. Может и из-за колорера.
В последнее время не падает. Вероятно из-за частых обновлений не успевает много утечь.
с этой ошибкой я разобрался, выше лежит для неё патч. а падало оно сразу при запуске фара. фар был последний, и единственный плагин - колорер.
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

перезалил архив патчей, ошибся я в локализации одной утечки, поправил файлик.
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

собрал плагин для far2 со всеми изменениями, которые были выше. (смотри ниже, пересобран)

пока утечек в коде не нашел больше, кроме мест , где происходит ошибка загрузки плагина. т.е. если плагин не стал грузится и выдал исключение (например файл настроек не нашел) , то мусора останется много.
Last edited by ctapmex on Fri 26 Jun, 2009 11:24, edited 1 time in total.
Aleksoid1978
Posts: 7
Joined: Fri 08 May, 2009 06:27

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

Post by Aleksoid1978 »

Попробовал последнюю версию Colorer отсюда - очень сильно тормозит даже на небольших файлах в 25килобайт(файл .h), а если открыть файл ресурса VS, .rc размеров под 300килобайт, то невозможно пролистывать, нагрузка на одно ядро доходит до 90%, камень C2D 1.8Mhz

Причем colorer4ever работает отлично, и посветка и скорость

З.Ы. - проверил Colorer-take5w - вообще вылетает. Версия Far 2.0 1010 х86

Проверял и просто на фаре и на связке с ConEmu
JFK
Posts: 34
Joined: Fri 05 Jan, 2007 06:37

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

Post by JFK »

sonar wrote:собрал плагин для far2 со всеми изменениями, которые были выше.
Собери, пожалуйста ещё версию, оптимизированную под SSE2 - похоже, что скорость работы плагина в этом варианте значительно выше...
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

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

есть плюс - теперь немного стал разбираться в параметрах сборки
Attachments
colorerSSE2.7z
(122.96 KiB) Downloaded 267 times
colorer.7z
(123 KiB) Downloaded 265 times
Post Reply

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