AltHistory: Alternative History — Альтернативная история

Здесь можно обсудить ваш любимый плагин.
User avatar
HaRT
Moderator
Posts: 10868
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: AltHistory: Alternative History — Альтернативная история

Post by HaRT »

Latest post of the previous page:

Denis wrote:фоном уже будет диалог от альтернативной истории папок
Подтверждаю, притом из любого Фаровского диалога.
montonero wrote:это переход в папку, наверное, в диалоге он вообще не нужен
Так ведь он никуда и не переходит…

Сходные эффекты (неправильный “задник”) наблюдается и в других случаях при возврате из Истории, вызванной из диалога: нажать Enter Esc или ShiftEnter в Истории команд, F3/F4 Esc или AltF3/AltF4 Esc Esc в Истории просмотра/редактирования. При этом при нажатии CAS в “холсте с нарисованным очагом” появляется “дырка” с правильным содержимым.

Ещё одна неприятная ситуация складывается при попытке переключиться между Историями, не выходя из них. Похоже, что макро-переменная %%AltHistoryDialogActive устанавливается только тогда, когда такое переключение уже удалось — например, с помощью временного отключения макросов — после текущего открытия Истории. Такое поведение делает эту переменную фактически бессмысленной. Нет ли способа при вызове через меню плагинов определить, что этот вызов произошёл из “своего” диалога, закрыть его и открыть требуемый? Тогда и макросы вызова из диалогов упростились бы…
Фар есть инструмент, а не нянька. © 2009 DrKnS
Nikolay
Posts: 602
Joined: Sat 14 Jan, 2006 17:17
Has thanked: 1 time
Been thanked: 34 times

Re: AltHistory: Alternative History — Альтернативная история

Post by Nikolay »

montonero wrote:Ну вот есть у меня в истории команд такая строка:
qplay:C:\folder\file.mp3
Файла уже давно нет, однако по Shift-F5 она не убирается.
Это правильное предложение, обработаю.
HaRT wrote:
Denis wrote:фоном уже будет диалог от альтернативной истории папок
Подтверждаю, притом из любого Фаровского диалога.
Посмотрю, в чем там дело.
HaRT wrote:Ещё одна неприятная ситуация складывается при попытке переключиться между Историями, не выходя из них.
Не понял, а в чем неприятность? :shock:
Нет ли способа при вызове через меню плагинов определить, что этот вызов произошёл из “своего” диалога, закрыть его и открыть требуемый? Тогда и макросы вызова из диалогов упростились бы…
Не всё так просто. Ну, вот нажимешь в истории Alt-Del, а потом Alt-F8(11,12). Как прикажешь обрабатывать ситуацию? У придуманного мной решения с глобальной переменной с ходу я минусов не нашел, потому и использовал. А что с этим, всё-таки, не так?
User avatar
John Doe
Бюрократ
Posts: 13863
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: AltHistory: Alternative History — Альтернативная история

Post by John Doe »

Nikolay wrote:
montonero wrote:Ну вот есть у меня в истории команд такая строка:
qplay:C:\folder\file.mp3
Файла уже давно нет, однако по Shift-F5 она не убирается.
Это правильное предложение, обработаю.
Так а где гарантия что после qplay: идёт имя файла?
Неужели все строки хоть как-то напоминающие имя файла обрабатывать?

И как быть в случае когда указанный в параметре файл - целевой? (т.е. и не должен существовать до запуска команды)
https://t.me/FarManager — Telegram чат
User avatar
HaRT
Moderator
Posts: 10868
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: AltHistory: Alternative History — Альтернативная история

Post by HaRT »

Nikolay wrote:Как прикажешь обрабатывать ситуацию?
Это в смысле что должно произойти (для пользователя) или как это реализовать (для программиста)? Если как реализовать, то не знаю, т.к. плагинов не писал. Если же для пользователя, то идеально было бы, чтобы диалоги Историй безболезненно могли быть вложенными (возможно, опосредованно через какие-то другие “свои” диалоги) и чтобы диалог обновлялся тогда, когда возвращается на передний план. Насколько это реально — Вам виднее.
Nikolay wrote:А что с этим, всё-таки, не так?
Не работает. :(
Вот подробности:

Code: Select all

REGEDIT4

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Vars]
"%%CallAltHistory"="$If ( Dialog && %%AltHistoryDialogActive == 1 ) $AKey $Else $If ( Shell || Tree || Info || QView || Viewer || Editor || Dialog ) F11 $If ( CheckHotkey ( \"@\" ) ) @ eval ( %_1 ) $Else Esc $AKey $End $Else MsgBox ( \"AltHistory\", \"Not here yet\" ) $End $End"

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Common\AltF11]
"Sequence"="%_1 = \"2\"; eval ( %%CallAltHistory )"
"DisableOutput"=dword:00000001
"Description"="AltHistory: View/ Edit"
@="AltHistory: View/ Edit"

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Common\AltF12]
"Sequence"="%_1 = \"3\"; eval ( %%CallAltHistory )"
"DisableOutput"=dword:00000001
"Description"="AltHistory: Folders"
@="AltHistory: Folders"

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Common\AltF8]
"Sequence"="%_1 = \"1 4\"; eval ( %%CallAltHistory )"
"DisableOutput"=dword:00000001
"Description"="AltHistory: Commands"
@="AltHistory: Commands" 
Из Панелей нажимаю AltF12 — открывается История папок. Нажимаю AltF11 — ничего не меняется. Если же теперь нажму Ctrl. AltF11 Ctrl. Esc, то только после этого переключение между Историями начинает работать.

Кстати, забыл поблагодарить, что не перестаёте радовать нас новыми удобными фичами.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Denis
Posts: 1444
Joined: Tue 05 Apr, 2005 18:12
Has thanked: 10 times
Been thanked: 5 times

Re: AltHistory: Alternative History — Альтернативная история

Post by Denis »

HaRT wrote: Кстати, забыл поблагодарить, что не перестаёте радовать нас новыми удобными фичами.
Присоединяюсь :)
montonero
Posts: 463
Joined: Wed 25 Jun, 2008 16:55
Has thanked: 3 times
Been thanked: 9 times

Re: AltHistory: Alternative History — Альтернативная история

Post by montonero »

John Doe wrote:Неужели все строки хоть как-то напоминающие имя файла обрабатывать?
ИМХО, это было бы самым правильным вариантом. Если какие-то команды/плагины используют некие параметры, которые ошибочно принимаются за имя файла, то можно эти команды/плагины записать в исключения - и все.
John Doe wrote:как быть в случае когда указанный в параметре файл - целевой?
А что такого произойдет? Если файла не было, то после выполнения команды он появится, не так ли? Ведь история чистится не постоянно...
"Far... Far never changes..."
DfDf
Posts: 120
Joined: Mon 24 Mar, 2008 15:40

Re: AltHistory: Alternative History — Альтернативная история

Post by DfDf »

Наткнулся на баг(?) в последней версии. Нахожу в истории (Alt-F11) папку быстрым поиском (например, у меня есть папка ...\V.003) она подсвечивается. Нажимаю Enter на цифровой клавиатуре - история исчезает, в папку не перешли. Если использовать обычный Enter, то все ok. Потерялись VK_* где-то?

Ессно, и фар, и плагин последние. Фар 1.71 alpha 4 (build 2440), Альтхистори 2.1.0.
Nikolay
Posts: 602
Joined: Sat 14 Jan, 2006 17:17
Has thanked: 1 time
Been thanked: 34 times

Re: AltHistory: Alternative History — Альтернативная история

Post by Nikolay »

HaRT wrote:Если же для пользователя, то идеально было бы, чтобы диалоги Историй безболезненно могли быть вложенными (возможно, опосредованно через какие-то другие “свои” диалоги) и чтобы диалог обновлялся тогда, когда возвращается на передний план. Насколько это реально — Вам виднее.
Реально, но геморрно реентерабельность историй делать. Соотношение цена/результат не рулит тут. Позже может быть...
Из Панелей нажимаю AltF12 — открывается История папок. Нажимаю AltF11 — ничего не меняется. Если же теперь нажму Ctrl. AltF11 Ctrl. Esc, то только после этого переключение между Историями начинает работать.
Судя по всему, это глюк FAR.
Технически говоря, AdvControl с ACTL_KEYMACRO + MCMD_POSTMACROSTRING хотя и возвращает УСПЕХ, но не отрабатывает совсем, если вызов плагина произошёл через макрофункцию eval.
DfDf wrote:Нахожу в истории (Alt-F11) папку быстрым поиском (например, у меня есть папка ...\V.003) она подсвечивается. Нажимаю Enter на цифровой клавиатуре - история исчезает, в папку не перешли.
Бррр. Alt-F11 - это опечатка? Про Alt-F12 речь?
Не воспрозводится у меня.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: AltHistory: Alternative History — Альтернативная история

Post by DrKnS »

Nikolay wrote:Бррр. Alt-F11 - это опечатка? Про Alt-F12 речь?
Не воспрозводится у меня.
Спич, видимо, о том, что плагин не обрабатывает KEY_NUMENTER в историях, а надо.
Nikolay
Posts: 602
Joined: Sat 14 Jan, 2006 17:17
Has thanked: 1 time
Been thanked: 34 times

Re: AltHistory: Alternative History — Альтернативная история

Post by Nikolay »

DrKnS wrote: Спич, видимо, о том, что плагин не обрабатывает KEY_NUMENTER в историях, а надо.
Ок, а чем определяется генерация этого события вместо KEY_ENTER?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: AltHistory: Alternative History — Альтернативная история

Post by DrKnS »

TI#48
darkmist
Posts: 124
Joined: Wed 08 Aug, 2007 19:44

Re: AltHistory: Alternative History — Альтернативная история

Post by darkmist »

montonero wrote:
John Doe wrote:Неужели все строки хоть как-то напоминающие имя файла обрабатывать?
ИМХО, это было бы самым правильным вариантом. Если какие-то команды/плагины используют некие параметры, которые ошибочно принимаются за имя файла, то можно эти команды/плагины записать в исключения - и все.
John Doe wrote:как быть в случае когда указанный в параметре файл - целевой?
А что такого произойдет? Если файла не было, то после выполнения команды он появится, не так ли? Ведь история чистится не постоянно...
все rm, del, svn rm и прочие пропадут.
опять же проблема с относительными именами.
ну и плюс как парсить вывод вида perl -e пусть даже с абсолютными путями внутри inline скрипта?
Nikolay
Posts: 602
Joined: Sat 14 Jan, 2006 17:17
Has thanked: 1 time
Been thanked: 34 times

Re: AltHistory: Alternative History — Альтернативная история

Post by Nikolay »

DrKnS wrote:TI#48
Ага, я припоминал такое, но сразу не нашел.
Тогда не вопрос, обработаю.
darkmist wrote:опять же проблема с относительными именами.
Про относительные пути речь и не идет.
User avatar
HaRT
Moderator
Posts: 10868
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: AltHistory: Alternative History — Альтернативная история

Post by HaRT »

Nikolay wrote:Технически говоря, AdvControl с ACTL_KEYMACRO + MCMD_POSTMACROSTRING хотя и возвращает УСПЕХ, но не отрабатывает совсем, если вызов плагина произошёл через макрофункцию eval.
Мне занести дефект на Мантис или Вы сами запишете?
darkmist wrote:все rm, del, svn rm и прочие пропадут
Тут и впрямь просятся Исключения для Обновления.
darkmist wrote:опять же проблема с относительными именами
В каком смысле? Вроде ж Обновление анализирует только абсолютные пути…
Фар есть инструмент, а не нянька. © 2009 DrKnS
Nikolay
Posts: 602
Joined: Sat 14 Jan, 2006 17:17
Has thanked: 1 time
Been thanked: 34 times

Re: AltHistory: Alternative History — Альтернативная история

Post by Nikolay »

HaRT wrote:
Nikolay wrote:Технически говоря, AdvControl с ACTL_KEYMACRO + MCMD_POSTMACROSTRING хотя и возвращает УСПЕХ, но не отрабатывает совсем, если вызов плагина произошёл через макрофункцию eval.
Мне занести дефект на Мантис или Вы сами запишете?
Занесите, если несложно.
darkmist wrote:все rm, del, svn rm и прочие пропадут
Тут и впрямь просятся Исключения для Обновления.
Прикрутить можно. Окошка в стиле "Бла-бла История: исключения..." достаточно?
User avatar
HaRT
Moderator
Posts: 10868
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: AltHistory: Alternative History — Альтернативная история

Post by HaRT »

Nikolay wrote:Занесите, если несложно.
№621
А пока я сделал такой обходной манёвр:

Code: Select all

REGEDIT4

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Vars]
"%%CallAltHistory"="$If ( Dialog && Dlg.ItemCount == 2 && Dlg.CurPos == 2 && Dlg.ItemType == DLGITEMTYPE_USERCONTROL && Dlg.GetValue ( Dlg.CurPos, DLGGETVALUE_VALUE ) == \"Alternative history\" ) $AKey $Else $If ( Search ) Esc $End $If ( Shell || Tree || Info || QView || Viewer || Editor || Dialog ) F11 $If ( CheckHotkey ( \"@\" ) ) @ eval ( %_1 ) $Else Esc $AKey $End $Else MsgBox ( \"AltHistory\", \"Not here yet\" ) $End $End" 
Nikolay wrote:Окошка в стиле "Бла-бла История: исключения..." достаточно?
Тут по логике налицо симметрия: исключения на добавление в Историю и исключения на удаление из Истории. Поэтому хорошо бы, чтобы пользовательский интерфейс эту симметрию отражал. Думаю, если представлять новые наборы исключений точно так же, как представляются имеющиеся (т.е. через меню настроек плагина), то будет достаточно удобно.
Почему я говорю о новых наборах исключений во множественном числе? Потому что часто бывает, что, например, папки как бы нет (хост временно недоступен), но терять в Истории все UNC-пути на этом хосте не хочется. Тут бы я и добавил его в список исключений на удаление.
Nikolay wrote:Не всё так просто.
А всё же нет ли способа при вызове плагина из меню (возможно, из какого-то диалога) определить, что уже открыт “свой” диалог (и какой) и действовать в зависимости от этого? В частности, если этот “свой” не История, на мой взгляд, можно Историю и не показывать; а как раз если История, то переключиться на неё с сохранением фильтра.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Post Reply

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