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

Здесь можно обсудить ваш любимый плагин.
User avatar
John Doe
Бюрократ
Posts: 12192
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 31 times
Been thanked: 159 times

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

Post by John Doe » Tue 21 Oct, 2008 08:42

Latest post of the previous page:

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

И как быть в случае когда указанный в параметре файл - целевой? (т.е. и не должен существовать до запуска команды)

User avatar
HaRT
Moderator
Posts: 8637
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 78 times
Been thanked: 142 times

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

Post by HaRT » Tue 21 Oct, 2008 08:53

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: 1411
Joined: Tue 05 Apr, 2005 18:12
Has thanked: 4 times
Been thanked: 2 times

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

Post by Denis » Tue 21 Oct, 2008 08:57

HaRT wrote: Кстати, забыл поблагодарить, что не перестаёте радовать нас новыми удобными фичами.
Присоединяюсь :)

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

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

Post by montonero » Tue 21 Oct, 2008 16:37

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 » Tue 21 Oct, 2008 20:20

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

Ессно, и фар, и плагин последние. Фар 1.71 alpha 4 (build 2440), Альтхистори 2.1.0.

Nikolay
Posts: 529
Joined: Sat 14 Jan, 2006 17:17
Has thanked: 1 time
Been thanked: 14 times

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

Post by Nikolay » Wed 22 Oct, 2008 08:31

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: 5148
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 5 times
Been thanked: 190 times

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

Post by DrKnS » Wed 22 Oct, 2008 08:52

Nikolay wrote:Бррр. Alt-F11 - это опечатка? Про Alt-F12 речь?
Не воспрозводится у меня.
Спич, видимо, о том, что плагин не обрабатывает KEY_NUMENTER в историях, а надо.

Nikolay
Posts: 529
Joined: Sat 14 Jan, 2006 17:17
Has thanked: 1 time
Been thanked: 14 times

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

Post by Nikolay » Wed 22 Oct, 2008 09:01

DrKnS wrote: Спич, видимо, о том, что плагин не обрабатывает KEY_NUMENTER в историях, а надо.
Ок, а чем определяется генерация этого события вместо KEY_ENTER?

User avatar
DrKnS
Posts: 5148
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 5 times
Been thanked: 190 times

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

Post by DrKnS » Wed 22 Oct, 2008 09:03

TI#48

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

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

Post by darkmist » Wed 22 Oct, 2008 09:04

montonero wrote:
John Doe wrote:Неужели все строки хоть как-то напоминающие имя файла обрабатывать?
ИМХО, это было бы самым правильным вариантом. Если какие-то команды/плагины используют некие параметры, которые ошибочно принимаются за имя файла, то можно эти команды/плагины записать в исключения - и все.
John Doe wrote:как быть в случае когда указанный в параметре файл - целевой?
А что такого произойдет? Если файла не было, то после выполнения команды он появится, не так ли? Ведь история чистится не постоянно...
все rm, del, svn rm и прочие пропадут.
опять же проблема с относительными именами.
ну и плюс как парсить вывод вида perl -e пусть даже с абсолютными путями внутри inline скрипта?

Nikolay
Posts: 529
Joined: Sat 14 Jan, 2006 17:17
Has thanked: 1 time
Been thanked: 14 times

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

Post by Nikolay » Wed 22 Oct, 2008 09:07

DrKnS wrote:TI#48
Ага, я припоминал такое, но сразу не нашел.
Тогда не вопрос, обработаю.
darkmist wrote:опять же проблема с относительными именами.
Про относительные пути речь и не идет.

User avatar
HaRT
Moderator
Posts: 8637
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 78 times
Been thanked: 142 times

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

Post by HaRT » Wed 22 Oct, 2008 09:13

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

Nikolay
Posts: 529
Joined: Sat 14 Jan, 2006 17:17
Has thanked: 1 time
Been thanked: 14 times

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

Post by Nikolay » Wed 22 Oct, 2008 09:25

HaRT wrote:
Nikolay wrote:Технически говоря, AdvControl с ACTL_KEYMACRO + MCMD_POSTMACROSTRING хотя и возвращает УСПЕХ, но не отрабатывает совсем, если вызов плагина произошёл через макрофункцию eval.
Мне занести дефект на Мантис или Вы сами запишете?
Занесите, если несложно.
darkmist wrote:все rm, del, svn rm и прочие пропадут
Тут и впрямь просятся Исключения для Обновления.
Прикрутить можно. Окошка в стиле "Бла-бла История: исключения..." достаточно?

User avatar
HaRT
Moderator
Posts: 8637
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 78 times
Been thanked: 142 times

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

Post by HaRT » Wed 22 Oct, 2008 11:52

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

dolzenko
Posts: 452
Joined: Wed 19 Apr, 2006 14:42
Location: Ростов-на-Дону

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

Post by dolzenko » Wed 22 Oct, 2008 13:25

Извиняюсь, что пока не получается внимательно прочитать внимательно все что написали про новую версию,
вот мои 2 копейки: если из редактора делать

Code: Select all

Shift-F2 F11 H 3
, а потом пытаться выбрать папку по Enter - список папок моргает, но путь не вставляется. Ctrl-Enter помогает, но тоже отчасти, т.к. не учитывает что нужно заменять выделение в поле ввода (вставляет так как если выделения отсутсвует).

PS. +1 к благодарнастям за новые релизы ;)

User avatar
HaRT
Moderator
Posts: 8637
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 78 times
Been thanked: 142 times

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

Post by HaRT » Wed 22 Oct, 2008 14:14

dolzenko_ wrote:Ctrl-Enter [...] не учитывает что нужно заменять выделение в поле ввода
Подтверждаю. Но прошу обратить внимание, что, строго говоря, замена должна происходить только при отключенных Постоянных блоках. Пример для подражания — поведение в Редакторе.

Nikolay
Обнаружилась ещё одна бяка: команда вида “net: \\host” пропадает из Истории при Обновлении по ShiftF5. Казалось бы, “\\host” не является UNC-путём…
Фар есть инструмент, а не нянька. © 2009 DrKnS

Nikolay
Posts: 529
Joined: Sat 14 Jan, 2006 17:17
Has thanked: 1 time
Been thanked: 14 times

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

Post by Nikolay » Wed 22 Oct, 2008 18:32

HaRT wrote:В частности, если этот “свой” не История, на мой взгляд, можно Историю и не показывать; а как раз если История, то переключиться на неё с сохранением фильтра.
Ок.
dolzenko_ wrote:потом пытаться выбрать папку по Enter - список папок моргает, но путь не вставляется.
Он и не должен никуда вставляться.
Ctrl-Enter помогает, но тоже отчасти, т.к. не учитывает что нужно заменять выделение в поле ввода (вставляет так как если выделения отсутсвует).
Я обратил на это внимание, когда писал код, но обратил так же и на то, что почему-то никто не задавал подобных вопросов про вставку в командную строку (как из моего плагина, так и стандартной вставкой по Ctrl-Enter из панелей, например) - а ведь там тоже есть и выделение... :)
Казалось бы, “\\host” не является UNC-путём…
Не является. Поправим..

Post Reply

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