ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Здесь обсуждается всё, что касается макросов.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

Макрос навеян этим:
PieApple wrote: Thu 23 Jan, 2014 12:57 Еще хотел бы поделиться идеей, реализованной в Проводнике с Windows 7, Total Commander, что если нажать мышкой на имя папки в адресной строке сверху, то происходит переход вверх на эту папку.
На самом деле получилось прикольно и, возможно, полезно (если Вы любите настольных грызунов).
Суть:
Клик мышой на заголовке панели, содержащей имя папки, вызывает переход (как в проводнике). А если клик приходится на разделитель (бэкслэш), то предоставляется выбор, в какую папку перейти.
Первоначальный макрос сваян «на коленке» за полчасика, потому не судите строго. Если будут отзывы и замечания — попробую «докрутить».

Начиная с этой версии я перестал выкладывать текст скрипта в сообщении (уж больно трудоёмко стало, т.к. он вырос). Тем более что “Select all” на сайте опять перестал работать. Теперь только во вложении в виде 7z-архива.
Сведения о версии:
Версия 1.4.12.
  1. Исправлена ошибка процедуры настройки, возникшая из-за изменения интерфейса. Ошибка проявлялась при вызове настройки сликом средней клавиши (колёсиком) на заголовке панели.
  2. Сделана возможность вызова диалога настройки скрипта через меню настроек плагинов.
ClickToTitleDir-1.4.12.7z
(24.95 KiB) Downloaded 27 times

Вместе с файлом самого скрипта поставляются языковые файлы ClickToTitleDirRus.lng и ClickToTitleDirEng.lng и файл помощи ClickToTitleDirRus.hlf.
Last edited by buniak_a_h on Mon 25 Dec, 2023 02:15, edited 69 times in total.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by HaRT »

Latest post of the previous page:

buniak_a_h wrote: Thu 07 Nov, 2019 22:55 Без этого невозможно нарисовать цвета и курсив
Да и ладно, лишь бы общий вид соответствовал. Курсив — это прерогатива ConEmu, а цвет по идее должно быть можно вставить любой, который отображается в самом Фаре (без ConEmu). Но я не разбирался.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by zg »

HaRT wrote: Thu 07 Nov, 2019 23:23а цвет по идее должно быть можно вставить любой, который отображается в самом Фаре
в фаре true color есть больше года.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by HaRT »

zg wrote: Fri 08 Nov, 2019 00:36 в фаре true color есть больше года
Точно! Были же соответствующие изменения в диалоге выбора цвета. Но разве эта роскошь есть в файле Справки? Там вроде по байту на цвет…
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by zg »

HaRT wrote: Fri 08 Nov, 2019 00:45Но разве эта роскошь есть в файле Справки?
мне кажется, я вполне однозначно написал, что там этого нет.
Yegor
Posts: 1326
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 32 times
Been thanked: 61 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by Yegor »

HaRT wrote: Thu 07 Nov, 2019 22:10 Это у вас версия 1.4.6, в версии 1.4.7 не так.
Моя ошибка, версию проверил (1.4.7), но видимо не перегрузил Фар после последнего обновления.
HaRT wrote: Thu 07 Nov, 2019 22:10 А если путь длинный и не влезает в заголовок панели?
В два клика. Это у меня получается все равно быстрее, чем с режимом редактирования.
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by citRiks »

пользуюсь с удовольствием
если это возможно, то предложил бы добавить управление с клавиатуры,
т.е. например при нажатии Ctrl-D (как в бразузерах) активизиуется строка адреса,
а дальше то же самое как и сейчас, только на по кликам а по нажатиям, Альт+<Стрелки> например
Last edited by citRiks on Fri 13 Mar, 2020 14:37, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

citRiks wrote: Fri 13 Mar, 2020 14:37 <…>предложил бы добавить управление с клавиатуры,
т.е. например при нажатии Ctrl-D (как в бразузерах) активизиуется строка адреса,
а дальше то же самое как и сейчас, только на по кликам а по нажатиям, Альт+<Стрелки> например
Ну, горячая клавиша может быть любой. Лично у меня на CtrlD "висит" на диалоге перехода по BookMark-ам (заменитель NamedFolders, немного подработанный для себя).
Вообще-то, это уже было реализовано. Я не знаю, по умолчанию ли это, но у меня вызов диалогового режима настроен на AltQ:double. Правда, по Enter-у, почему-то, переход не происходит. Что-то сломалось, видимо …
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by citRiks »

buniak_a_h, в хелпе не вижу обьянений на эту тему, в самом скрипте есть "мышиные" макросы, клавиатуpных "AltQ:double" там кажется что нет.. может починить-добавить?
Last edited by citRiks on Fri 13 Mar, 2020 15:03, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »


Обратите внимание на строку Keyboard shortcut for the “dialog” mode: (и ниже).
Модификатор :double (и :hold) - доступны только при наличии скрипта MacroEx
В истории изменений это приписывается версии 1.4.6:

Code: Select all

 Версия 1.4.6 от 05.11.2019
  1. Реализован вызов диалогового режима комбинацией клавиш. По умолчанию вызывается по AltT:Double. Для таких возможностей требуется
     скрипт MacroEx.
  2. Реализована настройка сочетания клавиш, вызывающего «диалоговый» режим.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by citRiks »

Так как у меня Alt<что-нибудь> нужны для модуля ПанельАутоФильтер(от ДжонДое), то АльтТ:double не работает, я поменял на CtrD:double.
Все круто, кроме того что у меня теперь рушиться модуль "rebind" (viewtopic.php?t=10376)

Code: Select all

╔════════════════════════════════════════════════════════════════════ Error ════════════════════════════════════════════════════════════════════╗
║ C:\Program Files\Far Manager\Plugins\LuaMacro\LuaMacro.dll:                                                                                   ║
║ ...ta\Roaming\Far Manager\Profile\Macros\modules\rebind.lua:47: attempt to index local 'file' (a nil value)                                   ║
║ Stack Traceback                                                                                                                               ║
║ ===============                                                                                                                               ║
║ (2) metamethod C function '__index'                                                                                                           ║
║ (3) Lua upvalue 'MakeUid' at file 'C:\Users\xxxxxx\AppData\Roaming\Far Manager\Profile\Macros\modules\rebind.lua:47'                           ║
║    Local variables:                                                                                                                           ║
║     file = nil                                                                                                                                ║
║     descr = string: ""                                                                                                                        ║
║     (*temporary) = C function: 0x01d78630                                                                                                     ║
║     (*temporary) = string: "≈%s: %s"                                                                                                          ║
║     (*temporary) = nil                                                                                                                        ║
║     (*temporary) = nil                                                                                                                        ║
║     (*temporary) = userdata: 0x03bd8588                                                                                                       ║
║     (*temporary) = string: "attempt to index local 'file' (a nil value)"                                                                      ║
║ (4) Lua upvalue 'AddRegularMacro' at file 'C:\Users\xxxxxx\AppData\Roaming\Far Manager\Profile\Macros\modules\rebind.lua:69'                   ║
║    Local variables:                                                                                                                           ║
║     m = table: 0x03bc0f78  {callbackId:userdata: 0x03bd8588, code:return, callback:userdata: 0x07feee44fc40 (more...)}                        ║
║     filename = nil                                                                                                                            ║
║     currentline = number: -1                                                                                                                  ║
║ (5) Lua function 'AddMacroFromFAR' at file 'C:\Program Files\Far Manager\Plugins\LuaMacro\utils.lua:1149' (best guess)                        ║
║    Local variables:                                                                                                                           ║
║     mode = number: 4                                                                                                                          ║
║     key = string: "MsWheelDown"                                                                                                               ║
║     lang = string: "lua"                                                                                                                      ║
║     code = string: "return"                                                                                                                   ║
║     flags = number: 0                                                                                                                         ║
║     description = string: ""                                                                                                                  ║
║     guid = table: 0x02eb2940  {1:��N� ⌂K��i,�6�M}                                                                                             ║
║     callback = userdata: 0x07feee44fc40                                                                                                       ║
║     callbackId = userdata: 0x03bd8588                                                                                                         ║
║     priority = number: 100                                                                                                                    ║
║     area = string: "Dialog"                                                                                                                   ║
║ (6) upvalue C function 'co_resume'                                                                                                            ║
║ (7) Lua upvalue 'MacroStep' at file 'C:\Program Files\Far Manager\Plugins\LuaMacro\LuaMacro.lua:246'                                          ║
║    Local variables:                                                                                                                           ║
║     handle = table: 0x03d17568  {coro:thread: 0x03a3d928}                                                                                     ║
║     status = string: "suspended"                                                                                                              ║
║     params = table: 0x04700070  {defline:1172, area:Shell, condition:function: 0x046ff2c0, id:EB3566AE-1046-4DEE-97C0-E2BAD78F3AA5 (more...)} ║
║     tp = string: "table"                                                                                                                      ║
║     (*temporary) = Lua function 'FixReturn' (defined at line 211 of chunk C:\Program Files\Far Manager\Plugins\LuaMacro\LuaMacro.lua)         ║
║     (*temporary) = table: 0x03d17568  {coro:thread: 0x03a3d928}                                                                               ║
║ (8) Lua function 'GetInputFromMacro' at file 'C:\Program Files\Far Manager\Plugins\LuaMacro\keymacro.lua:286' (best guess)                    ║
║    Local variables:                                                                                                                           ║
║     macro = table: 0x0312b4f0  {m_id:table: 0x04700010, m_area:1, m_flags:0, m_textkey:CtrlD, m_handle:table: 0x03d17568 (more...)}           ║
║     OldCurState = table: 0x03a39658  {MacroQueue:table: 0x03a396b8, HistoryDisableMask:0, IntKey:16777284}                                    ║
║     value = nil                                                                                                                               ║
╟───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║                                                                    { OK }                                                                     ║
╚═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
Но наверное это проблема больше самого rebind-a, напишу и туда
Last edited by citRiks on Fri 13 Mar, 2020 16:15, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

citRiks wrote: Fri 13 Mar, 2020 16:14 Так как у меня Alt<что-нибудь> нужны для модуля ПанельАутоФильтер
Вот потому и сделана настройка.
citRiks wrote: Fri 13 Mar, 2020 16:14 теперь рушиться модуль "rebind"
От назначенного хоткея зависит? Может, назначить что-нить абсолютно экзотическое?
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by citRiks »

buniak_a_h wrote: Fri 13 Mar, 2020 16:55 От назначенного хоткея зависит? Может, назначить что-нить абсолютно экзотическое?
Я вначале тоже так думал, что может он не любит одинарные нажатия, или двойные нажатия,
попробовал разное, и похоже что падает и будет падать на всех нажатиях :(
я даже порылся в самом rebind-e, но слишком сложно понять.
по идее, rebind все макросы пропускает через себя что-ли,
так как его цель блокировать макросы, или переназначать им нажатия,
и ни на каком другом макросе из уже пары сотен он у меня не падал.
думаю что JohnDoe все же скоро починит этот rebind.
И интересно, как все же вы смогли создать такой макрос,
который рушит стойкий ко всему остальному rebind? :)
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

citRiks, позырил я rebind - у Вас, видимо, или уже переделанный, или наоборот - версия не 1.1.7 . Обоснование: в строке 47 ничего нету, а переменная file используется в функции MakeUid в строке 45. Судя по Вашему протоколу, сам MakeUid вызывается из функции AddRegularMacro, а я не нашёл её в скачанном rebind.lua. Возможно, требуется дополнительная настройка _macroinit.lia .
На самом деле проблему понять можно: при настройке хоткея я динамически (в процессе загрузки макросов) вызываю Macro с новым хоткеем. Возможно, как раз это и конфликтует с rebind.lua .
1. Перед строкой return ("≈%s: %s"):format(file:match"[^\\]+$",descr or 'nil') -- ±≠≡∞ƒ≈ в функции MakeUid добавьте строчку win.OutputDebugString('MakeUid: file='..tostring(file)) и посмотрите каким-нть DbgView что там приходит (вообще, не только для моего модуля)
2. Для "безопасной" работы замените в указанной строке file на (file or ''). Падать не будет, но, видимо, настройка ClickToTitleDir при помощи именно этого скрипта будет невозможна.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

citRiks, добавочка.
Судя по моему варианту rebind есть ещё несколько мест, в которых file==nil приведёт к краху. В частности, два вызова в функции editBadUid.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by citRiks »

buniak_a_h,
rebind.lua.7z
(3.62 KiB) Downloaded 38 times
приаттачиваю свой ребинд, там вначале как и во многих других скриптх, я пишу так:

Code: Select all

-- if true then return end
-- (Строчка выше это нейтрaлизация скрипта)
поэтому и строка ошибки ниже на две позиции получается
и сейчас посмотрел, версия актуальная это "1.1",
"1.1.7" это видимо прилепившееся ".7Z" ?
у меня вроде актуальная
Last edited by citRiks on Fri 13 Mar, 2020 18:11, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

ClickToTitleDir — переход к папкам по щелчку на заголовке панели (и др.)

Post by buniak_a_h »

Ну, как подстраховаться - Вы поняли. У себя устанавливать я пока не хочу. На реальной машине, во всяком случае.
Две добавленные строки не объясняют ссылку на отсутствующую функцию. Впрочем, это не имеет значения.
Post Reply

Return to “Обсуждение макросов”