Менеджер закладок для папок

Здесь выкладываются готовые к использованию макросы и скрипты.
IgorZ
Posts: 463
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

Менеджер закладок для папок

Post by IgorZ » Fri 24 Jan, 2014 09:51

Данный скрипт позволяет назначать на папки закладки (закладка может содержать ссылки как на одну, так и на несколько папок, для разных панелей; подробнее во встроенной справке скрипта) и переходить по ним, а также по переменным окружения, содержащим пути. Идея взята у Shell Bookmark (с) Max Rusov, текст написан с нуля.
Скрипт содержит три макроса.
  • Сохранение текущей папки в новой закладке.
    Клавиша вызова: RCtrl+Shift/RAlt+последовательность клавиш.
  • Переход по закладке.
    Клавиша вызова: RCtrl+последовательность клавиш.
  • Меню закладок и настроек.
    Клавиша вызова: RCtrl+/.

Требуемая версия Far 3.0.4324+.

Attachments
BookmarkManager.2.5.2.7z
(19.32 KiB) Downloaded 41 times
Last edited by IgorZ on Fri 29 Sep, 2017 11:27, edited 8 times in total.

User avatar
Dennis_Moore
Posts: 237
Joined: Tue 03 Mar, 2015 19:54
Location: Kiev
Has thanked: 5 times
Been thanked: 11 times

Менеджер закладок для папок

Post by Dennis_Moore » Wed 10 May, 2017 10:17

Latest post of the previous page:

Спасибо, работает!

IgorZ
Posts: 463
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

Менеджер закладок для папок

Post by IgorZ » Thu 11 May, 2017 06:13

Версия 2.4.0 - Скрипт можно вызывать из меню дисков; показываются только актуальные пункты (если закладка настроена только для правой панели, нет смысла показывать её для левой). Исправлены замеченные ошибки. Мелкие правки.

Skaramush
Posts: 43
Joined: Mon 16 May, 2011 04:03
Has thanked: 3 times

Менеджер закладок для папок

Post by Skaramush » Thu 11 May, 2017 13:06

Несколько ночных билдов назад (текущий - 3.0 build 4956 x64) появилась проблема: при переходе по любой закладке вида

Code: Select all

  ╔═════════════════════════════════════ Менеджер закладок ═════════════════════════════════════╗  
  ╟───────────────────────────────────────── Закладки ──────────────────────────────────────────╢  
  ║  LOC-LYNCPHOTO │ D:\info\фото\lync_photos                                                   ║

появляется окно вида

Code: Select all

   ╔══════════════════════════════╗   
   ║ <A> D:\info\фото\lync_photos ║   
   ╚══════════════════════════════╝  
и не исчезает до нажатия любой клавиши. После нажатия любой клавиши окно закрывается, переход происходит, а внизу в командной строке появляется наименование клавиши, нажатием на которую, было закрыто окно:

Code: Select all

║errorreporting.ad
╟─────────────────
║..               
╚═════════════════
D:\distr\1>Shift 
Проблема воспроизводится как на версии скрипта 2.3.1, так и на версии 2.4.0.
ОС: Win10 Корп x64

IgorZ
Posts: 463
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

Менеджер закладок для папок

Post by IgorZ » Fri 12 May, 2017 07:28

Skaramush wrote:Несколько ночных билдов назад (текущий - 3.0 build 4956 x64) появилась проблема:
Не моё. У меня там вообще вывода никакого в принципе нет. Получается, это eval или Keys так глючить начал. А сообщение не исчезает - это к mf.waitkey вопрос. Что уж там нарефакторили - не знаю. Судя по сообщению на Ru.Board, "сильно вероятно что это последствия b4952".

User avatar
DrKnS
Posts: 4646
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 125 times
Contact:

Менеджер закладок для папок

Post by DrKnS » Fri 12 May, 2017 07:44

IgorZ wrote: Не моё
Таки ваше.
Если вы хотите "<0 - message will be not displayed" - то сообщение вообще не надо выводить, а не выводить и делать waitkey c отрицательным временем, надеясь, что оно как бы сразу истечёт и сообщение закроется.

Waitkey никогда логику "отрицательное время - это типа оно сразу истекло" не поддерживал, а "работало" оно только потому, что время в этом случае было представлено 32-битной величиной, при прибавлении к которой (unsigned)-1 == 4294967295 происходило целочисленное переполнение.
Теперь время в этом случае 64-битное, переполнения не происходит и сообщение будет честно висеть запрошенные 49 дней и 17 часов.

IgorZ
Posts: 463
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

Менеджер закладок для папок

Post by IgorZ » Fri 12 May, 2017 11:34

DrKnS wrote:
IgorZ wrote: Не моё
Таки ваше.
Если вы хотите "<0 - message will be not displayed" - то сообщение вообще не надо выводить, а не выводить и делать waitkey c отрицательным временем, надеясь, что оно как бы сразу истечёт и сообщение закроется.

Waitkey никогда логику "отрицательное время - это типа оно сразу истекло" не поддерживал, а "работало" оно только потому, что время в этом случае было представлено 32-битной величиной, при прибавлении к которой (unsigned)-1 == 4294967295 происходило целочисленное переполнение.
Теперь время в этом случае 64-битное, переполнения не происходит и сообщение будет честно висеть запрошенные 49 дней и 17 часов.
"Не моё" относилось к выводу нажатой клавиши. Специально сейчас проверил с последней ночнушкой - если поставить, к примеру, 10000 и нажать клавишу до исчезновения сообщения, она таки выводится в командной строке.
За пояснение относительно waitkey спасибо.

User avatar
DrKnS
Posts: 4646
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 125 times
Contact:

Менеджер закладок для папок

Post by DrKnS » Fri 12 May, 2017 19:02

IgorZ wrote: "Не моё" относилось к выводу нажатой клавиши. Специально сейчас проверил с последней ночнушкой - если поставить, к примеру, 10000 и нажать клавишу до исчезновения сообщения, она таки выводится в командной строке.
Это тоже ваше.
Я в луа понимаю, как свинья в апельсинах, но:
  1. for c in seq:gmatch(".") do -- для каждой ранее нажатой клавиши
  2.   if eval(mod..c,2)<0 then Keys(mod..c)
seq здесь - строка с именем клавиши, которую вы попросили waitkey() вам вернуть. Вы её посимвольно проходите и каждый символ исполняете. Что просили - то и получили.

IgorZ
Posts: 463
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

Менеджер закладок для папок

Post by IgorZ » Mon 15 May, 2017 07:33

Обидно чувствовать себя балбесом. Таки ошибки были действительно свои, причём одна из них была предусмотрена, исключена, а затем снова привнесена путём опечатки (причиной другой была честная лень). Так что
Версия 2.4.1 - Исправлены свежевыявленные ошибки.
Ищите новые...

vasyabelkin
Posts: 1
Joined: Mon 31 Jul, 2017 20:11
Has thanked: 1 time

Менеджер закладок для папок

Post by vasyabelkin » Mon 31 Jul, 2017 20:26

IgorZ, Если вызвать меню сразу после установки плагина, получим

Code: Select all

 C:\progs\conTools\Far\Plugins\LuaMacro\LuaMacro.dll:
 ...g\far\Macros\scripts\BookmarkManager\BookmarkManager.lua:427: attempt to get length of local 'l' (a nil value)
 stack traceback:
    ...g\far\Macros\scripts\BookmarkManager\BookmarkManager.lua:427: in function 'prep_menu'
    ...g\far\Macros\scripts\BookmarkManager\BookmarkManager.lua:488: in function 'BMMenu'
    ...g\far\Macros\scripts\BookmarkManager\BookmarkManager.lua:605: in function 'action'
    C:\progs\conTools\Far\Plugins\LuaMacro\LuaMacro.lua:426: in function <C:\progs\conTools\Far\Plugins\LuaMacro\LuaMacro.lua:380>
Гляньте, пожалуйста

IgorZ
Posts: 463
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

Менеджер закладок для папок

Post by IgorZ » Tue 01 Aug, 2017 12:28

Версия 2.4.2 - Исправлена ошибка с вызовом меню при пустом списке закладок. Исправлены свежевыявленные ошибки в справке.

Внимание!!!
В выложенную версию прокралась ошибка! Версия перевыложена. Кто успел скачать - перекачайте.
Last edited by IgorZ on Tue 01 Aug, 2017 12:59, edited 1 time in total.

IgorZ
Posts: 463
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

Менеджер закладок для папок

Post by IgorZ » Wed 09 Aug, 2017 05:22

Понадобился мне по работе NetBox. Внезапно выяснилось, что его закладки не работают - я не совсем корректно сохраняю данные о папке плагина. В итоге пришлось полностью переделывать эту часть алгоритма (и кое-что из остального). Так что
Версия 2.5.0 - Изменён формат хранения закладок в БД. Старый формат пока поддерживается. Рефакторинг.
Зато теперь, по идее, проблем с закладками, вообще не должно быть в принципе. Если старую закладку открыть в редакторе (по F4) и сохранить, она перезапишется в новом формате. А если выкрою время, сделаю конвертор закладок в новый формат и выпущу версию без поддержки старого.

skipik
Posts: 68
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 5 times
Been thanked: 2 times

Менеджер закладок для папок

Post by skipik » Wed 09 Aug, 2017 15:24

Поставил версию 2.5.0. Открываю RCrtl/, далее пытаюсь зайти, например, в ALLUSERSPROFILE, получаю такое:

+ ещё один подобный репорт: http://forum.ru-board.com/topic.cgi?for ... art=3460#5

IgorZ
Posts: 463
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

Менеджер закладок для папок

Post by IgorZ » Fri 11 Aug, 2017 05:15

Версия 2.5.1 - Исправлены некоторые недоделки и упущения предыдущей версии. Переменные окружения, во всяком случае, теперь у меня работают (извиняюсь, забыл про них, был в Попыхах... :))
IgorZ wrote:
Wed 09 Aug, 2017 05:22
А если выкрою время, сделаю конвертор закладок в новый формат и выпущу версию без поддержки старого.
А вот этого не будет. Поскольку скрипт понимает префиксы командной строки, то от поддержки строкового формата всё равно не избавиться.
Last edited by IgorZ on Fri 11 Aug, 2017 05:16, edited 1 time in total.

skipik
Posts: 68
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 5 times
Been thanked: 2 times

Менеджер закладок для папок

Post by skipik » Fri 11 Aug, 2017 14:30

Исправлено, спасибо!
Но есть ещё кое что: AltF1/AltF2 -> Меню Закладок -> Enter. Получаем:

+ ещё репорт: http://forum.ru-board.com/topic.cgi?for ... art=3460#6

IgorZ
Posts: 463
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

Менеджер закладок для папок

Post by IgorZ » Sat 12 Aug, 2017 16:26

Версия 2.5.2 - Исправлен вызов из меню дисков, там же изменена логика работы.Теперь при вызове из меню дисков всегда меняется только путь на той панели, для которой вызвано меню. Ну и соответстующие поправки в остальное. Закладки при этом показываются урезанными, но при редактировании выдаются целиком. Полностью пустые закладки показываются, но для перехода недоступны. И т. д. Надеюсь, с работой над ошибками всё.

Post Reply

Return to “Полезные макросы и скрипты”