Позволить плагину менять заголовок редактора "насовсем"
- NightRoman
- Posts: 6197
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 34 times
- Been thanked: 62 times
- Contact:
Позволить плагину менять заголовок редактора "насовсем"
Если не ошибаюсь, согласно АПИ, заголовок редактора будет восстановлен Фаром, как только плагин отработал свой вызов. Почему нельзя менять заголовок редактора командой плагина *насовсем*, ну точнее, до очередного изменения? Это принципиальное ограничение и шансов на это нет, или-таки в принципе это реально?
Согласен, что для обычного редактора менять заголовок насовсем смысла особого нет, пусть показывает путь файла (ну или стартовый заголовок). Но я вот повадился редактор использовать, как командную консоль в PowerShellFar. Есть три типа консоли: default, local, remote. Хотелось бы тип отразить в заголовке и имя компа, если это remote консоль. Это я могу при открытии редактора, хорошо. Но плагин также позволяет поменять тип консоли динамически (ну или оставить тип remote, но подключить ее удаленно к другому компу, имя которого захочется в заголовке поменять) - и вот тут облом. Жаль. Да и текущий location так можно было бы так показать. А при желании и фантазии и бегущую строку можно сделать через idle и так далее (а в FarNet я мог бы это просто как фичу для .NET плагинов реализовать).
Словом, два вопроса:
- имеет ли смысл это запостить на мантис, как пожелание?
- нет ли обходного пути более-менее приемлимого?
Согласен, что для обычного редактора менять заголовок насовсем смысла особого нет, пусть показывает путь файла (ну или стартовый заголовок). Но я вот повадился редактор использовать, как командную консоль в PowerShellFar. Есть три типа консоли: default, local, remote. Хотелось бы тип отразить в заголовке и имя компа, если это remote консоль. Это я могу при открытии редактора, хорошо. Но плагин также позволяет поменять тип консоли динамически (ну или оставить тип remote, но подключить ее удаленно к другому компу, имя которого захочется в заголовке поменять) - и вот тут облом. Жаль. Да и текущий location так можно было бы так показать. А при желании и фантазии и бегущую строку можно сделать через idle и так далее (а в FarNet я мог бы это просто как фичу для .NET плагинов реализовать).
Словом, два вопроса:
- имеет ли смысл это запостить на мантис, как пожелание?
- нет ли обходного пути более-менее приемлимого?
- NightRoman
- Posts: 6197
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 34 times
- Been thanked: 62 times
- Contact:
Re: Позволить плагину менять заголовок редактора "насовсем"
Отправил на мантис, чтобы не потерялось
http://bugs.farmanager.com/view.php?id=1334
http://bugs.farmanager.com/view.php?id=1334
- Centaur
- Posts: 1083
- Joined: Tue 05 Apr, 2005 20:09
- Location: Novosibirsk, Russia
- Been thanked: 2 times
Re: Позволить плагину менять заголовок редактора "насовсем"
Я тут совершенно случайно наступил на воркэраунд. Я им пользуюсь, но, как честный человек, должен зарепортить.
А именно, ECTL_SETTITLE, выполненный из OpenPluginW — автовосстанавливается, а из ProcessEditorInputW — нет.
А именно, ECTL_SETTITLE, выполненный из OpenPluginW — автовосстанавливается, а из ProcessEditorInputW — нет.
- NightRoman
- Posts: 6197
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 34 times
- Been thanked: 62 times
- Contact:
Re: Позволить плагину менять заголовок редактора "насовсем"
О, так вот просто, да? Попробовал, работает. Отлично!Centaur wrote:А именно, ECTL_SETTITLE, выполненный из OpenPluginW — автовосстанавливается, а из ProcessEditorInputW — нет.
Господа разработчики, это не бага случайно - можно пользоваться или будет пофиксено или просто изменено?
В идеале бы хотелось, конечно, прямой метод смены заголовка иметь (что просится на мантисе), но с таким вариантом, как щас, уже можно выкрутиться.
- NightRoman
- Posts: 6197
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 34 times
- Been thanked: 62 times
- Contact:
Re: Позволить плагину менять заголовок редактора "насовсем"
Возможно, было бы лучше, если бы Фар не восстанавливал заголовок, как это делается (в некоторых случаях, как выясняется). На ECTL_SETTITLE в документации была бы простая строчка "меняет заголовок". Просто, понятно, интуитивно. Если плагину надо восстанавливать заголовок - нет проблем, сохранил, поработал, восстановил. А сейчас документация по ECTL_SETTITLE либо неполна, либо неправильна, либо в Фаре ошибка, что заголовок не восстанавливается в некоторых случаях.
Все ж хотелось бы мнение команды узнать. Где именно баг или недочет - в документации или в Фаре?
UPD. Оказывается Фар уже и так помогает плагину в восстановлении заголовка (сам я не пробовал этот путь):
Все ж хотелось бы мнение команды узнать. Где именно баг или недочет - в документации или в Фаре?
UPD. Оказывается Фар уже и так помогает плагину в восстановлении заголовка (сам я не пробовал этот путь):
То есть даже не надо плагину сохранять исходный заголовок, а просто вызвать с NULL в конце вызова. Словом, я бы предложил Фару самому не восстанавливать заголовок. Это ИИ. Плагину видней, что именно он хочет.Для восстановления статусной строки укажите параметр Param равный NULL или пустой строке.
Re: Позволить плагину менять заголовок редактора "насовсем"
в общем это баг. он будет вылечен (мантис)
то тебя - "распиши" нужное тебе апи для "заголовканавсегда"
то тебя - "распиши" нужное тебе апи для "заголовканавсегда"
We are the Borg. You will be assimilated.
So Say We All!
So Say We All!
- NightRoman
- Posts: 6197
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 34 times
- Been thanked: 62 times
- Contact:
Re: Позволить плагину менять заголовок редактора "насовсем"
Хороший отклик, спасибо. А что именно баг-то? Тут сразу несколько вариантов. Или просто расписать "как бы мне хотелось"?Skirda wrote:в общем это баг. он будет вылечен (мантис)
то тебя - "распиши" нужное тебе апи для "заголовканавсегда"

- NightRoman
- Posts: 6197
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 34 times
- Been thanked: 62 times
- Contact:
Re: Позволить плагину менять заголовок редактора "насовсем"
Вариант, какой бы мне хотелось, я уже написал - Фар НЕ ВОССТАНАВЛИВАЕТ ЗАГОЛОВОК, если не просят. Просьба - NULL. Все, больше ничего не надо, АПИ остается, как есть.
-- Надо плагину временно менять заголовок, меняет и в конце вызова сам восстанавливает
-- Надо плагину насовсем поменять заголок, просто меняет - и все
Проще некуда и, главное, такое поведение ожиданное, если не читать документацию (которая будет тривиальной).
UPD: ожиданное, кроме NULL, конечно. Я бы эту фичу убрал, зачем усложнять? Если плаг хочет восстанавливать, то пусть и сохранит сначала, это вполне интуитивно. Но я не против услуги типа NULL - восстановить заголовок.
-- Надо плагину временно менять заголовок, меняет и в конце вызова сам восстанавливает
-- Надо плагину насовсем поменять заголок, просто меняет - и все
Проще некуда и, главное, такое поведение ожиданное, если не читать документацию (которая будет тривиальной).
UPD: ожиданное, кроме NULL, конечно. Я бы эту фичу убрал, зачем усложнять? Если плаг хочет восстанавливать, то пусть и сохранит сначала, это вполне интуитивно. Но я не против услуги типа NULL - восстановить заголовок.
- NightRoman
- Posts: 6197
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 34 times
- Been thanked: 62 times
- Contact:
Re: Позволить плагину менять заголовок редактора "насовсем"
Skirda
Я напишу на мантис, но ты не подтвердил, что именно является ошибкой. Варианты:
-- Что Фар восстанавливает заголовок при вызове ECTL_SETTITLE из OpenPluginW (хотелось бы именно это исправить...)
-- Что Фар не восстанавливает заголовок при вызове ECTL_SETTITLE из ProcessEditorInputW
-- Что документация неверна, например, не описаны все нюансы
-- Что-то еще пропустил?
Я напишу на мантис, но ты не подтвердил, что именно является ошибкой. Варианты:
-- Что Фар восстанавливает заголовок при вызове ECTL_SETTITLE из OpenPluginW (хотелось бы именно это исправить...)
-- Что Фар не восстанавливает заголовок при вызове ECTL_SETTITLE из ProcessEditorInputW
-- Что документация неверна, например, не описаны все нюансы
-- Что-то еще пропустил?
Re: Позволить плагину менять заголовок редактора "насовсем"
Восстанавливается заголовок вот здесь: plugins.cpp::PluginManager::CommandsMenu() в самом конце...NightRoman wrote: Skirda
Я напишу на мантис, но ты не подтвердил, что именно является ошибкой. Варианты:
-- Что Фар восстанавливает заголовок при вызове ECTL_SETTITLE из OpenPluginW (хотелось бы именно это исправить...)
я подразумевал именно это.NightRoman wrote:-- Что Фар не восстанавливает заголовок при вызове ECTL_SETTITLE из ProcessEditorInputW
С учетом твоей хотелки, думаю, что из PluginManager::CommandsMenu() нужно убрать вызов CurEditor->SetPluginTitle(nullptr)
в этом случае описать, что мол так и так...
IMHO это будет меньшее из зол

We are the Borg. You will be assimilated.
So Say We All!
So Say We All!
- NightRoman
- Posts: 6197
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 34 times
- Been thanked: 62 times
- Contact:
Re: Позволить плагину менять заголовок редактора "насовсем"
А что остальные думают? Кажется, что если Фар не будет восстанавливать заголовок, то это просто идеально: элементарно сделать, интуитивно, снимает ограничения, оставляет возможным восстановление заголовка (но плагин должен явно попросить (NULL) или сделать восстановление сам).
ОФФ. Хоть это к Фару уже не относится - автовосстановление заголовка вряд ли компатибильно с другими редакторами (я-таки подумываю о реализации Фарнет под что-то еще, когда-нибудь).
ОФФ. Хоть это к Фару уже не относится - автовосстановление заголовка вряд ли компатибильно с другими редакторами (я-таки подумываю о реализации Фарнет под что-то еще, когда-нибудь).
- NightRoman
- Posts: 6197
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 34 times
- Been thanked: 62 times
- Contact:
Re: Позволить плагину менять заголовок редактора "насовсем"
У меня уже готовый юз-кейс есть в PSF для смены заголовка. Но вот теперь непонятно как быть. Воркераунд найден, но как и ожидалось, выяснилось, что он, скорей, ошибка. Забавно.
- Centaur
- Posts: 1083
- Joined: Tue 05 Apr, 2005 20:09
- Location: Novosibirsk, Russia
- Been thanked: 2 times
Re: Позволить плагину менять заголовок редактора "насовсем"
На самом деле, стоит задуматься. Для чего вообще была сделана фича?
DrawLine показывает там свою подсказку. Мой QuickSearch — текущий шаблон поиска. Это один юзкейс — режим редактора.
FarCmds view:< и edit:< показывают там командную строку, чей выхлоп перехвачен в редактор. PSF, насколько я понимаю, тоже хотел бы менять заголовок, чтобы показать, что редактор представляет интерфейс не к файлу, но к какой-то другой сущности. Это другой юзкейс.
Эти два варианта принципиально отличаются. Во втором случае плагин, претендующий на владение заголовком, только один. В первом их потенциально может быть несколько. Стоит обдумать оба случая и, возможно, предоставить какое-то альтернативное API для отображения статуса/режима.
DrawLine показывает там свою подсказку. Мой QuickSearch — текущий шаблон поиска. Это один юзкейс — режим редактора.
FarCmds view:< и edit:< показывают там командную строку, чей выхлоп перехвачен в редактор. PSF, насколько я понимаю, тоже хотел бы менять заголовок, чтобы показать, что редактор представляет интерфейс не к файлу, но к какой-то другой сущности. Это другой юзкейс.
Эти два варианта принципиально отличаются. Во втором случае плагин, претендующий на владение заголовком, только один. В первом их потенциально может быть несколько. Стоит обдумать оба случая и, возможно, предоставить какое-то альтернативное API для отображения статуса/режима.
- NightRoman
- Posts: 6197
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 34 times
- Been thanked: 62 times
- Contact:
Re: Позволить плагину менять заголовок редактора "насовсем"
Два разных АПИ по смене заголовка - тоже нормальный вариант. Главное, чтобы оба юзкейса были покрыты, а детали уже не так существенны, как будет сделано, так и хорошо.