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 28 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:

Taciturn wrote: Thu 10 Oct, 2019 08:32 ClickToTitleDir.1.2.2.lua.7z в scripts
Не поделитесь архивом версии?
Фар есть инструмент, а не нянька. © 2009 DrKnS
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 »

HaRT wrote: Thu 10 Oct, 2019 18:42 Вопрос: не приведёт ли это к некорректной работе, если путь содержит один из символов -, +, =? (Код пока не смотрел.)
Приведёт. Минус и равенство - может и имеют значение, но плюс (также как и верт.черточка) - служебные символы. Надеюсь, что не встречающиеся в имени каталога.
На самом деле - да, есть ограничения в применении. Ну, если юзер такой умный, что использует символы псевдографики в имени папки, то ему не судьба пользоваться этим сервисом. Не уверен, что стоит предпринимать какие-то меры по проверке.
Впрочем, я сейчас переделываю. Возможно, это перестанет быть проблемой.
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 »

HaRT wrote: Thu 10 Oct, 2019 19:48 Это я тупой/слепой, или в заглавном сообщении и впрямь нет ни вложения, ни ссылки для скачивания?
HaRT wrote: Thu 10 Oct, 2019 20:31 Не поделитесь архивом версии?
Я не знаю, что случилось... При "Отправить" вылезла какая-то красная надпись (большими буквами). Я не стал разбираться, а отправил снова. В тексте надпись типа [Attachment] была. А куда девался сам архив - не знаю. Перезалил...
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 »

buniak_a_h wrote: Thu 10 Oct, 2019 21:39 Приведёт. Минус и равенство - может и имеют значение, но плюс (также как и верт.черточка) - служебные символы. Надеюсь, что не встречающиеся в имени каталога.
Ни плюс, ни минус, ни знак равенства не являются символами, запрещёнными в именах директорий или файлов. Более того, минус довольно популярен в качестве дефиса. Вообще одна из распространённых конвенций — это использовать минус, чтобы отделять номер версии от имени продукта. Например, прямо сейчас у меня в одной отдельно взятой папке есть , а . Т.ч. это ограничение гораздо серьёзнее, чем кажется, и оставлять его по умолчанию — это, на мой взгляд, неправильное решение. Учитывая долю пользователей, которым недоступна нормальная псевдографика, более разумно было бы написать для них, где что исправить, чтобы и у них заработало, а не ограничивать всех пользователей.
buniak_a_h wrote: Thu 10 Oct, 2019 21:39 если юзер такой умный, что использует символы псевдографики в имени папки
Плюс, минус, равно, трубопровод — это ни в коем разе не псевдографика. Да и вообще подобные проблемы лишний раз указывают на основополагающий недостаток выбранного подхода для сопоставления позиции щелчка мыши и целевого действия.
buniak_a_h wrote: Thu 10 Oct, 2019 21:39 Возможно, это перестанет быть проблемой.
Очень на это надеюсь, а то придётся патчить под себя каждую версию.
buniak_a_h wrote: Thu 10 Oct, 2019 21:44 Перезалил
Спасибо
Фар есть инструмент, а не нянька. © 2009 DrKnS
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 »

HaRT, насчёт минуса и равенства - согласен. Плюс между файлами указывает на append этих файлов; пайп, а также перенаправление '<' и '>' - это уже какая-то экзотика.
На самом деле я сам прекрасно вижу ограниченность и некорректность подхода. Увы, я не нашёл способа получить Panel.Title кроме как вычленив псевдографику (точнее, BoxSymbols из far:config). Конечно, если б была такая возможность, возможно было бы и проще, и надёжнее. Но если нет - приходится работать с тем, что есть.
Ещё можно было бы попробовать читать с экрана, используя API консоли (кто-то тут писал). Но я не в курсе. Сделаете - флаг в руки.
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 »

buniak_a_h wrote: Thu 10 Oct, 2019 22:51 Плюс между файлами указывает на append этих файлов
Это всего лишь особенность синтаксиса досовой команды copy, решается использованием кавычек: copy "a+b"+"c+d" "e+f". Вон, в командах cmd тоже есть много специальных символов: %^= и др. — но это же не означает, что надо запрещать использовать их в именах файлов. Запрещённые символы у Майкрософта задокументированы (и Проводник их перечисляет при попытке использования в переименовании), всё остальное разрешено.
buniak_a_h wrote: Thu 10 Oct, 2019 22:51 если б была такая возможность, возможно было бы и проще, и надёжнее.
Я уже предлагал подход, но вы его отвергли, судя по всему, без серьёзного рассмотрения. О чём тут ещё спорить…
buniak_a_h wrote: Thu 10 Oct, 2019 22:51 Сделаете - флаг в руки.
Или кто-нибудь другой…
Фар есть инструмент, а не нянька. © 2009 DrKnS
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 »

buniak_a_h wrote: Thu 10 Oct, 2019 21:44Перезалил
Кстати, скажите, а для чего вы так настаиваете на наличии там у поля ввода флага DIF_CENTERGROUP? Ведь, судя по его документации и по моему пользовательскому опыту, он там ровно ничего не меняет, только код засоряет впустую да лишнее предупреждение от LuaCheck порождает из-за длинной строки.
Фар есть инструмент, а не нянька. © 2009 DrKnS
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 »

HaRT wrote: Thu 10 Oct, 2019 23:00 Я уже предлагал подход, но вы его отвергли, судя по всему, без серьёзного рассмотрения.
1. Повторить логику ФАРа я не смогу. Исходники ворошить не буду точно.
2.
HaRT wrote: Wed 09 Oct, 2019 04:31 исходя из ширины панели и длины пути (
Вот самое смешное начинается когда путь не помещается. А для плагиновых панелей - совсем тоска: перед путём разные плагины разное пихают. Поэтому исходить надо нет от "длины пути", а от Panel.Title (которой, увы, нету). Например, в архиве перед путём вставляется кроме типа архива ещё и имя, а оно тоже может быть разной длины. Поэтому на длину пути завязываться никак нельзя.
Упрёк в том, что замечание проигнорировал, не принимается. Просто не знаю, как сделать.
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 »

HaRT wrote: Thu 10 Oct, 2019 23:13 Кстати, скажите, а для чего вы так настаиваете на наличии там у поля ввода флага DIF_CENTERGROUP?
По лени. Чтоб не рассчитывать положения радиобутонов в зависимости от длины их капшенов и текста-заголовка. Которые, кстати, берутся из lng-файла. Т.е. без этого флага сначала прочитать, потом посчитать, потом внести в DlgItems...
HaRT wrote: Thu 10 Oct, 2019 23:13 лишнее предупреждение от LuaCheck порождает из-за длинной строки.
У меня нет ни предупреждений, ни ошибок. Просто всё чисто.
Last edited by buniak_a_h on Thu 10 Oct, 2019 23:24, edited 1 time 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 »

buniak_a_h wrote: Wed 09 Oct, 2019 05:30 Глюк с кликом на последнем символе имени каталога у меня не повторяется. Возможно, у меня он уже был исправлен...
Увы, не исправлен (версия 1.2.2).
Как проверяю:
1. Запускаю Фар: start "" "C:\Program Files (x86)\Far Manager\far.exe" /p"%FarHome%\Plugins\LuaMacro" -s %TEMP%\farprofile\%RANDOM%.
2. Для определённости выставляю там размер консоли: mode con cols=120 lines=30.
3. Подкладываю ему в профиль в Macros\scripts файлы ClickToTitleDir, перезагружаю там макросы: lm:load.
4. Перехожу в директорию C:\Program Files (x86)\Far Manager\Addons (неважно, на какой панели).
5. Вхожу в диалоговый режим, там щёлкаю ЛКМ по ) (закрывающей скобке).
Ожидаю: переход в C:\Program Files (x86).
Получаю: переход в C:\Program Files (x86)\Far Manager.
С другими путями аналогично.
Фар есть инструмент, а не нянька. © 2009 DrKnS
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 »

buniak_a_h wrote: Thu 10 Oct, 2019 23:18 Повторить логику ФАРа я не смогу
Она совсем не сложная, было бы желание.
buniak_a_h wrote: Thu 10 Oct, 2019 23:18 для плагиновых панелей - совсем тоска
Вариант был отвергнут ещё до объявления функциональности для плагиновых панелей.
buniak_a_h wrote: Thu 10 Oct, 2019 23:22 Чтоб не рассчитывать положения радиобутонов в зависимости от длины их капшенов и текста-заголовка.
Речь про основной диалог, а не про настройки: я в версии 1.1.2 этот флаг убрал и позже пояснил, почему, а вы его снова вернули. Вот я и спрашиваю: зачем он там?
buniak_a_h wrote: Thu 10 Oct, 2019 23:22 У меня нет ни предупреждений, ни ошибок. Просто всё чисто.
У меня с настройками по умолчанию
Фар есть инструмент, а не нянька. © 2009 DrKnS
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 »

HaRT wrote: Thu 10 Oct, 2019 23:51
buniak_a_h wrote: Wed 09 Oct, 2019 05:30 Глюк с кликом на последнем символе имени каталога у меня не повторяется. Возможно, у меня он уже был исправлен...
Увы, не исправлен (версия 1.2.2)
Видимо, я не заметил, что глюк касается только диалогового режима. Во всяком случае, у меня в диалоговом воспроизвелось, в непосредственном - нет.
Гляну...
HaRT wrote: Thu 10 Oct, 2019 23:57
buniak_a_h wrote: Thu 10 Oct, 2019 23:22 Чтоб не рассчитывать положения радиобутонов в зависимости от длины их капшенов и текста-заголовка.
Речь про основной диалог, а не про настройки: я в версии 1.1.2 этот флаг убрал и позже пояснил, почему, а вы его снова вернули. Вот я и спрашиваю: зачем он там?
Не нужен. Убрал, спасибо.
В первый раз не стал брать этот кусок от Вас, т.к. не понял, зачем мне DI_DOUBLRBOX. Вы пояснили, я добавил, а остальное забыл взять - думал, что уже и так взято.
Хотя про слишком длинные строки я всё равно не понял. 123 символа - это слишком длинная строка?
HaRT wrote: Thu 10 Oct, 2019 23:57
buniak_a_h wrote: Thu 10 Oct, 2019 23:22 У меня нет ни предупреждений, ни ошибок. Просто всё чисто.
У меня с настройками по умолчанию
Я сразу запретил сообщение о слишком длинной строке. В конфигурационном файле вставил строку
max_line_length=false; -- BAX Иначе я на любой свой текст получал кучу незначащих сообщений, которые ни на что не влияют. Я так и не понял, зачем нужен контроль длины строки, если интерпретатор LUA позволяет длиннее, чем проверяется.
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 »

buniak_a_h wrote: Fri 11 Oct, 2019 00:39 зачем нужен контроль длины строки, если интерпретатор LUA позволяет длиннее, чем проверяется
Это не для интерпретатора, а для людей, читающих код. Индивидуальное восприятие различается, да, но для каждого человека есть предельная длина строки, после которой читаемость кода резко падает. И лично для меня это как раз где-то 120 символов (то же, что по умолчанию в LuaCheck).

И обратите внимание, что там есть и два предупреждения другого типа.
Фар есть инструмент, а не нянька. © 2009 DrKnS
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 »

HaRT wrote: Fri 11 Oct, 2019 00:46 И обратите внимание, что там есть и два предупреждения другого типа.
Про sDeb я уже исправил.
Про unused_args у меня тоже заблокировано сообщение; у меня привычка (полезная) если интерфейсом предусмотрен параметр, то он должен присутствовать в списке. А если в теле процедуры он не потребовался, то (а) это не ошибка и (б) не приводит к излишнему расходованию ресурсов. К счастью, в LUA ненужный параметр можно указать подчёрком, но если потом потребуется, то гимор будет больше, чем если предусмотреть сразу. Поэтому считаю более стилистически оправданным перечислять все параметры, а сообщение о неиспользованном параметре просто игнорировать.
Вот прикрутить скрипт к стабильной версии - это было бы здорово. Но... Что-то не удаётся пока :-(
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 »

buniak_a_h wrote: Fri 11 Oct, 2019 03:28 это не ошибка
Нередко такие ситуации свидетельствуют именно об ошибке: либо опечатка, либо копипасту не исправил, либо ещё что-то не сделал, что собирался.
buniak_a_h wrote: Fri 11 Oct, 2019 03:28 ненужный параметр можно указать подчёрком
Можно просто вынести в комментарий.
buniak_a_h wrote: Fri 11 Oct, 2019 03:28 сообщение о неиспользованном параметре просто игнорировать
Я выше написал, чем это может быть чревато.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Taciturn
Posts: 600
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 89 times
Been thanked: 31 times
Contact:

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

Post by Taciturn »

HaRT wrote: Thu 10 Oct, 2019 20:31
Taciturn wrote: Thu 10 Oct, 2019 08:32 ClickToTitleDir.1.2.2.lua.7z в scripts
Не поделитесь архивом версии?
HaRT, так ведь он в шапке есть. Но без проблем:
https://taciturn-shadow.spb.ru/far/ClickToTitleDir.1.2.2.lua.7z
Last edited by Taciturn on Fri 11 Oct, 2019 08:31, edited 2 times in total.
Post Reply

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