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

Здесь можно обсудить ваш любимый плагин.
r251
Posts: 3
Joined: Tue 07 Sep, 2010 11:13

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

Post by r251 »

Latest post of the previous page:

голый фар, оставлены только multiarc + конэму + плагин. вылетает в архивах стабильно.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

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

Post by DrKnS »

afan wrote:Panel Colorer дергает API FAR из отдельного потока (к сожалению, ProcessSynchroEventW работает не совсем так, как хотелось бы). Сам FAR 2 1661+ и его стандартные плагины вполне себе thread-safe, т.е. при стандартном наборе плагинов вылетать ничего не должно.
Это не так.
Far API — НЕ thread safe.
Дёргать из отдельных потоков нельзя. Совсем нельзя. Кроме случаев, когда в документации явно указано обратное.

Ситуация «а я вот дёрнул и пронесло» — не более, чем удачное стечение обстоятельств.
afan
Posts: 33
Joined: Tue 24 Nov, 2009 23:08

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

Post by afan »

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

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

Post by afan »

DrKnS wrote: Far API — НЕ thread safe.
Дёргать из отдельных потоков нельзя. Совсем нельзя. Кроме случаев, когда в документации явно указано обратное.
Понял. Буду выкручиваться. Я вот по этому треду решил, что API уже thread-safe. Изначально делал по уму, через ProcessSynchroEventW, дергая его из отдельного треда, но обнаружил, что он не вызывается, когда в FAR запущена внешняя консольная программа (например, если сделать "dir|more" в каталоге с большим количеством файлов). Такое поведение -- это принципиальное ограничение консольного приложения или просто решили, что когда в FAR выполняется внешнее приложение, то плагинам ProcessSynchroEventW не нужен? Задача у меня проста -- определить момент, когда FAR отображает буфер консоли вместо своего интерфейса (и когда интерфейс обратно возвращается на экран). Понятно, что в рамках существовавших раньше плагинов это никому не надо было, а тут вот понадобилось.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

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

Post by DrKnS »

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 »

DrKnS wrote:Возможно вашу задачу можно решить через EVENT_CONSOLE_START_APPLICATION/EVENT_CONSOLE_END_APPLICATION.
Спасибо за подсказку! Попробую.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

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

Post by Maximus5 »

В принципе, конечно, эти события работают. Но определенный процент сбоев имел место быть.
Underwest
Posts: 26
Joined: Mon 06 Sep, 2010 17:30

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

Post by Underwest »

после обновления conemu все заработало, спасибо
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

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

Post by Skirda »

быыыылин... thread-safe, да thread-safe. :-(
уже давно заказали бы через мантис нужное АПИ для "цветовой дифференциации штанов" - аля... "для типа диска/пути/плагиновой панели блаблабла делаем цвет такой то..".
идея то классная, но, IMHO, без поддержки ФАРа решается через одно место...
We are the Borg. You will be assimilated.
So Say We All!
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

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

Post by Maximus5 »

Skirda wrote:аля... "для типа диска/пути/плагиновой панели блаблабла делаем цвет такой то..".
Так опять упремся в 16 цветов консоли? Была как-то тема про Far Truemod, но затихла.
Underwest
Posts: 26
Joined: Mon 06 Sep, 2010 17:30

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

Post by Underwest »

сегодня попробовал, фар truemod, прикольная вещь, не ожидал, что из консольного режима можно такое выжать, одна проблема падуч еще, за день теста упал около 7 раз. Поймал баги, писать на гуглокод ?
P.S. фар+колорер труемод - красота неописуемая
montonero
Posts: 463
Joined: Wed 25 Jun, 2008 16:55
Has thanked: 3 times
Been thanked: 9 times

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

Post by montonero »

Плагин стабильно убивает фар на (скорее всего) любых плагиновых панелях. Достаточно погонять курсор по панели немного, чтобы фар помер. У меня "успешно" прошли испытание 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 145 times
"Far... Far never changes..."
afan
Posts: 33
Joined: Tue 24 Nov, 2009 23:08

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

Post by afan »

Выпустил версию 0.93, где падений больше быть не должно. Минимально требуемая версия ConEmu теперь 100906 -- не забудьте обновиться.
montonero
Posts: 463
Joined: Wed 25 Jun, 2008 16:55
Has thanked: 3 times
Been thanked: 9 times

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

Post by montonero »

Обнаружены следующие багофичи:
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 »

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: 463
Joined: Wed 25 Jun, 2008 16:55
Has thanked: 3 times
Been thanked: 9 times

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

Post by montonero »

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

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