Panel Colorer — экспериментальный плагин для FAR+ConEmu

Здесь можно обсудить ваш любимый плагин.
afan
Posts: 33
Joined: Tue 24 Nov, 2009 23:08

Re: Panel Colorer — экспериментальный плагин для FAR+ConEmu

Post by afan » Tue 07 Sep, 2010 15:04

Latest post of the previous page:

refaim wrote:Ещё один артефакт
Появляется при выключенных панелях в полноэкранном (Alt+Enter/Alt+F9) режиме.
Спасибо, поправил. Исправление будет в следующей сборке.

afan
Posts: 33
Joined: Tue 24 Nov, 2009 23:08

Re: Panel Colorer — экспериментальный плагин для FAR+ConEmu

Post by afan » Tue 07 Sep, 2010 15:11

DrKnS wrote: Far API — НЕ thread safe.
Дёргать из отдельных потоков нельзя. Совсем нельзя. Кроме случаев, когда в документации явно указано обратное.
Понял. Буду выкручиваться. Я вот по этому треду решил, что API уже thread-safe. Изначально делал по уму, через ProcessSynchroEventW, дергая его из отдельного треда, но обнаружил, что он не вызывается, когда в FAR запущена внешняя консольная программа (например, если сделать "dir|more" в каталоге с большим количеством файлов). Такое поведение -- это принципиальное ограничение консольного приложения или просто решили, что когда в FAR выполняется внешнее приложение, то плагинам ProcessSynchroEventW не нужен? Задача у меня проста -- определить момент, когда FAR отображает буфер консоли вместо своего интерфейса (и когда интерфейс обратно возвращается на экран). Понятно, что в рамках существовавших раньше плагинов это никому не надо было, а тут вот понадобилось.

User avatar
DrKnS
Posts: 5437
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 254 times

Re: Panel Colorer — экспериментальный плагин для FAR+ConEmu

Post by DrKnS » Tue 07 Sep, 2010 17:02

afan wrote:Я вот по этому треду решил, что API уже thread-safe.
В том треде - концепт, реализущий "как бы прозрачный ProcessSynchroEventW" для вызовов api из неосновных потоков. Возникли проблемы с плагинами, синхроизирующими всё самостоятельно, поэтому в основной код пока не пошло.
он не вызывается, когда в FAR запущена внешняя консольная программа (например, если сделать "dir|more" в каталоге с большим количеством файлов). Такое поведение -- это принципиальное ограничение консольного приложения или просто решили, что когда в FAR выполняется внешнее приложение, то плагинам ProcessSynchroEventW не нужен?
Фар во время работы внешнего консольного приложения "спит" и ждёт его завершения по WaitForSingleObject, вызывать ProcessSynchroEventW некому.
Задача у меня проста -- определить момент, когда FAR отображает буфер консоли вместо своего интерфейса (и когда интерфейс обратно возвращается на экран).
Возможно вашу задачу можно решить через EVENT_CONSOLE_START_APPLICATION/EVENT_CONSOLE_END_APPLICATION.

afan
Posts: 33
Joined: Tue 24 Nov, 2009 23:08

Re: Panel Colorer — экспериментальный плагин для FAR+ConEmu

Post by afan » Tue 07 Sep, 2010 17:07

DrKnS wrote:Возможно вашу задачу можно решить через EVENT_CONSOLE_START_APPLICATION/EVENT_CONSOLE_END_APPLICATION.
Спасибо за подсказку! Попробую.

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

Re: Panel Colorer — экспериментальный плагин для FAR+ConEmu

Post by Maximus5 » Tue 07 Sep, 2010 19:04

В принципе, конечно, эти события работают. Но определенный процент сбоев имел место быть.

Underwest
Posts: 26
Joined: Mon 06 Sep, 2010 17:30

Re: Panel Colorer — экспериментальный плагин для FAR+ConEmu

Post by Underwest » Thu 09 Sep, 2010 18:44

после обновления conemu все заработало, спасибо

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

Re: Panel Colorer — экспериментальный плагин для FAR+ConEmu

Post by Skirda » Sat 11 Sep, 2010 16:52

быыыылин... thread-safe, да thread-safe. :-(
уже давно заказали бы через мантис нужное АПИ для "цветовой дифференциации штанов" - аля... "для типа диска/пути/плагиновой панели блаблабла делаем цвет такой то..".
идея то классная, но, IMHO, без поддержки ФАРа решается через одно место...
We are the Borg. You will be assimilated.
So Say We All!

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

Re: Panel Colorer — экспериментальный плагин для FAR+ConEmu

Post by Maximus5 » Sat 11 Sep, 2010 17:02

Skirda wrote:аля... "для типа диска/пути/плагиновой панели блаблабла делаем цвет такой то..".
Так опять упремся в 16 цветов консоли? Была как-то тема про Far Truemod, но затихла.

Underwest
Posts: 26
Joined: Mon 06 Sep, 2010 17:30

Re: Panel Colorer — экспериментальный плагин для FAR+ConEmu

Post by Underwest » Sat 11 Sep, 2010 19:33

сегодня попробовал, фар truemod, прикольная вещь, не ожидал, что из консольного режима можно такое выжать, одна проблема падуч еще, за день теста упал около 7 раз. Поймал баги, писать на гуглокод ?
P.S. фар+колорер труемод - красота неописуемая

montonero
Posts: 402
Joined: Wed 25 Jun, 2008 16:55
Has thanked: 2 times
Been thanked: 7 times

Re: Panel Colorer — экспериментальный плагин для FAR+ConEmu

Post by montonero » Tue 14 Sep, 2010 17:56

Плагин стабильно убивает фар на (скорее всего) любых плагиновых панелях. Достаточно погонять курсор по панели немного, чтобы фар помер. У меня "успешно" прошли испытание multiarc, 7zipalt, observer, network, TrueBranch, tmppanel. Дальше эксперименты бросил.
Прилагаю посмертные логи.
Far x86 2.1668, Panel Colorer 0.92, Conemu 100906, WinXP SP3
Attachments
traps.rar
(19.14 KiB) Downloaded 118 times
"Far... Far never changes..."

afan
Posts: 33
Joined: Tue 24 Nov, 2009 23:08

Re: Panel Colorer — экспериментальный плагин для FAR+ConEmu

Post by afan » Sun 26 Sep, 2010 17:27

Выпустил версию 0.93, где падений больше быть не должно. Минимально требуемая версия ConEmu теперь 100906 -- не забудьте обновиться.

montonero
Posts: 402
Joined: Wed 25 Jun, 2008 16:55
Has thanked: 2 times
Been thanked: 7 times

Re: Panel Colorer — экспериментальный плагин для FAR+ConEmu

Post by montonero » Wed 06 Oct, 2010 18:17

Обнаружены следующие багофичи:
1. usageMeterVisible с любым аргументом делает фон панелей черным.
2. русские буквы в конфиге не поддерживаются (по крайней мере, в регэкспах).
3. как user.js и config.js взаимодействуют - непонятно. пока полностью не очистил main в config.js - расцветка из user.js не применялась. да и всякие переменные и функции из config.js в user.js не видны.
"Far... Far never changes..."

afan
Posts: 33
Joined: Tue 24 Nov, 2009 23:08

Re: Panel Colorer — экспериментальный плагин для FAR+ConEmu

Post by afan » Thu 07 Oct, 2010 08:56

1. Выложил сборку 0.94, в которой поправлена установка usageMeterVisible в false (и приводится пример минимального файла user.js, отключающего эту полоску-индикатор).

2. Насчет русских букв посмотрю. Файл скрипта, надеюсь, сохранен как UTF-8?

3. Взаимодействуют так: сначала выполняется config.js, в нем устанавливаются переменные text, backgroundColor, image и usageMeterVisible. Затем выполняется по тому же принципу user.js, если он существует, и в этот скрипт передаются все те же параметры, что и в config.js + уже инициализированные переменные text, backgroundColor, image и usageMeterVisible. Т.е. в user.js достаточно иметь логику, которая лишь переопределяет поведение config.js.

montonero
Posts: 402
Joined: Wed 25 Jun, 2008 16:55
Has thanked: 2 times
Been thanked: 7 times

Re: Panel Colorer — экспериментальный плагин для FAR+ConEmu

Post by montonero » Thu 07 Oct, 2010 17:05

afan wrote: 2. Насчет русских букв посмотрю. Файл скрипта, надеюсь, сохранен как UTF-8?
Конечно... нет. ) Нигде про это не было указано.
afan wrote:3. Взаимодействуют так:
У меня это почему-то не работает. Посмотрим, как будет в новой версии.
Можно сделать, чтобы переменные-функции, которые в config.js определяются, были в user.js видимы?
"Far... Far never changes..."

afan
Posts: 33
Joined: Tue 24 Nov, 2009 23:08

Re: Panel Colorer — экспериментальный плагин для FAR+ConEmu

Post by afan » Thu 07 Oct, 2010 20:24

Теперь про UTF-8 в readme и в самом скрипте будет указано. Проверил -- с юникодом все вроде работает нормально.
Можно сделать, чтобы переменные-функции, которые в config.js определяются, были в user.js видимы?
Надо подумать, как это лучше сделать. Сейчас это независимые скрипты, и все, что дополнительно передается в user.js -- это text, backgroundColor, image и usageMeterVisible, измененные в config.js. Константы-названия цветов и прочие мелкие функции пока можно в user.js скопировать из config.js.

montonero
Posts: 402
Joined: Wed 25 Jun, 2008 16:55
Has thanked: 2 times
Been thanked: 7 times

Re: Panel Colorer — экспериментальный плагин для FAR+ConEmu

Post by montonero » Fri 08 Oct, 2010 18:45

afan wrote:с юникодом все вроде работает нормально.
Да, сохранение в utf-8 помогло, спасибо.
afan wrote:Константы-названия цветов и прочие мелкие функции пока можно в user.js скопировать из config.js.
До такого варианта я и сам додумался. ) Но это как-то некузяво. Непонятно, зачем вообще нужен config.js в этом случае, если все нужно заново определять.

Кстати, а можно доступиться из этих скриптов до переменных окружения?
"Far... Far never changes..."

afan
Posts: 33
Joined: Tue 24 Nov, 2009 23:08

Re: Panel Colorer — экспериментальный плагин для FAR+ConEmu

Post by afan » Fri 08 Oct, 2010 19:01

зачем вообще нужен config.js в этом случае, если все нужно заново определять.
Все заново переопределять не нужно. Посмотрите примеры user.js -- чтобы отключить usage meter, к примеру, достаточно одной строчки. Идея в том, чтобы в config.js были дефолтные определения логики работы, а в user.js -- переопределения того, что нужно или дополнительные правила раскраски.
можно доступиться из этих скриптов до переменных окружения?
Все, что сейчас передается в скрипт, описано в самом config.js. Ничего другого там нет. Если что-то нужно, можно записать как хотелку и прикрутить. Интересно какой use case этого? Хочется сравнивать директории с переменными типа %TEMP% или что-то еще?

Post Reply

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