LineBoard plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Drums
В ветке HKCU\Software\Akelsoft\AkelPad\Recent многострочная запись (REG_MULTI_SZ) для каждого файла fileN в виде

Code: Select all

путь\имя
кодировка
не знаю
Bookmarks=(строки через запятую)
Либо в файле сессии плагина Sessions в похожем виде.

Offline
Posts: 9
Joined: Wed Aug 20, 2014 1:23 am

Post by Drums »

Skif_off большое спасибо!

Offline
Posts: 9
Joined: Wed Aug 20, 2014 1:23 am

Post by Drums »

Оказывается, записи в реестре заменяются друг другом. Я выставил, в настройках программы, значение 999, но не факт, что это поможет сохранить закладки в долгосрочной перспективе, так как я ежедневно пользуюсь большим кол-вом текстовых файлов. Есть какой-нибудь способ сохранить закладки перманентно, до ручного удаления?

Спасибо.

Offline
Posts: 173
Joined: Mon Dec 06, 2010 9:53 am
Location: г.Харьков, Русь

Post by San_dr »

Drums,
У Andrey_A_A в его сборке есть скрипт Сохранение и восстановление закладок - BookmarksPlus.vbs
http://forum.ru-board.com/topic.cgi?for ... pic=4764#1

Offline
Posts: 9
Joined: Wed Aug 20, 2014 1:23 am

Post by Drums »

Боюсь, мне понадобится помощь. С первого запуска сборки - понял, что пользоваться ей не смогу, но файл BookmarkPlus.vbc вытащить удалось. Перекинул его в C:\Windows\SysWOW64\AkelFiles\Plugs\Scripts, но он, по всей видимости, не работает, так как ничего не происходит. Сам скрипт выключенный LineBoard автоматически не загружает, как написано в описании. Что мне делать?

P.S. Так же я не до конца понял, что именно делает этот скрипт? Куда он будет сохранять закладки и т.д.

P.P.S. Functions установил, вроде как...

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Drums wrote:Что мне делать?
Для начала - открыть скрипт и прочитать комментарии, там есть два готовых пункта меню, которые вам нужны. Один момент: т.к. вы ставите с заменой блокнота, вам придется выбрать другое место хранения файла с заладками (создайте его сразу, лучше в UTF-16 LE). Можно, например, в %AppData%\AkelPad\ListBookmarks.txt или другое место, куда есть права на запись.

Однако, у меня скрипт не заработал (останавливается с ошибкой), если у вас тоже, то лучше написать автору в ЛС (он не часто заглядывает) или, наверное, перебраться сюда.

Offline
Posts: 9
Joined: Wed Aug 20, 2014 1:23 am

Post by Drums »

К чёрту! Рыться в скриптах мне не дано...

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Drums
Ну нельзя так сразу сдаваться :) Ошибку у себя нашел: проглядел дату, надо было обновить Functions.vbs (5.9->6.1, в старом не было GetAllTabListBookmarks). Кстати, файл с закладками насильно сохраняется в UTF-8.

Т.к. у вас с заменой блокнота, делаете так:

- кладете BookmarksPlus.vbs в \AkelFiles\Plugs\Scripts, Functions.vbs в \AkelFiles\Plugs\Scripts\Include (брать из самой свежей сборки);
- т.к. у обычных программ, не запущенных с правами администратора, нет права записи в системные каталоги, создаете, например, в C:\Users\%User%\AppData\Roaming\ папку AkelPad, в нее кладете пустой текстовый файл ListBookmarks.txt, можете сразу указать кодировку UTF-8, но необязательно - скрипт сделает это насильно. Если выберете другое место, обратите внимание на переменные среды Windows, абсолютные пути не всегда удобны;
- добавляете в меню (плагин ContextMenu или на тулбар, но тогда нужны иконки) три пункта

Code: Select all

-"Сохранить закладки всех открытых документов в файл ListBookmarks.txt" Call("Scripts::Main", 1, "BookmarksPlus.vbs", `"4" "%AppData%\AkelPad\ListBookmarks.txt"`)
-"Установить закладки открытым документам, прописанным в файле ListBookmarks.txt" Call("Scripts::Main", 1, "BookmarksPlus.vbs", `"5" "%AppData%\AkelPad\ListBookmarks.txt"`)
-"Заменить закладки открытым  документам, прописанными в файле ListBookmarks.txt" Call("Scripts::Main", 1, "BookmarksPlus.vbs", `"6" "%AppData%\AkelPad\ListBookmarks.txt"`)
Текст лучше все-таки подсократить, неприлично длинное название пунктов. Или даже

Code: Select all

"Сохранение/восстановление закладок"
{
 -"Сохранить закладки открытых файлов" Call("Scripts::Main", 1, "BookmarksPlus.vbs", `"4" "%AppData%\AkelPad\ListBookmarks.txt"`)
 -"Установить закладки открытым файлам" Call("Scripts::Main", 1, "BookmarksPlus.vbs", `"5" "%AppData%\AkelPad\ListBookmarks.txt"`)
 -"Заменить закладки открытым файлам" Call("Scripts::Main", 1, "BookmarksPlus.vbs", `"6" "%AppData%\AkelPad\ListBookmarks.txt"`)
}

До кучи:

Code: Select all

"Открыть ListBookmarks.txt" OpenFile("%AppData%\AkelPad\ListBookmarks.txt")
Много не проверял, но со скриптом есть одна проблема: после того, как отработает, открывает файл ListBookmarks.txt. Непонятно, зачем?


З.Ы. Кстати, обратите внимание на LineBoardBookmarks.js (брать удобнее отсюда). Русификация: в самом низу скрипта вместо

Code: Select all

//  else if (AkelPad.GetLangId(0 /*LANGID_FULL*/) == 1049 /*Russian*/)
...здесь пара-тройка десятков строк
//    sTxtReplaceWith   = "replace with:";
//  }
вставьте

Code: Select all

  else if (AkelPad.GetLangId(0 /*LANGID_FULL*/) == 1049 /*Russian*/)
  {
    sTxtInvalidArg    = "Неверный параметр: ";
    sTxtCut           = "Вырезать строки";
    sTxtCopy          = "Копировать строки";
    sTxtOpenInTab     = "Открыть в новой вкладке";
    sTxtPasteTo       = "Вставить в (переписать) строки";
    sTxtReplace       = "Заменить строки";
    sTxtDelete        = "Удалить строки";
    sTxtSelection     = "Выделенные строки";
    sTxtBookmarkLines = "Снабдить строки закладками";
    sTxtUnmarkLines   = "Убрать закладки";
    sTxtInverseBooks  = "Инвертировать закладки";
    sTxtGoTo          = "Перейти к";
    sTxtNext          = "Следующая";
    sTxtPrevious      = "Предыдущая";
    sTxtShowPanel     = "Показать панель";
    sTxtShowRuler     = "Показать линейку";
    sTxtLBSettings    = "Настройки плагина LineBoard...";
    sTxtBookLinesAll  = "С закладками";
    sTxtUnLinesAll    = "Без закладок";
    sTxtBookLinesSel  = "С закладками в выделенном";
    sTxtUnLinesSel    = "Без закладок в выделенном";
    sTxtExpand        = "Расширить к ближайшей закладке";
    sTxtExpandTop     = "Расширить вверх к предыдущей закладке";
    sTxtExpandBottom  = "Расширить вниз к следующей закладке";
    sTxtReduce        = "Уменьшить к ближайшей закладке";
    sTxtReduceTop     = "Уменьшить сверху к следующей закладке";
    sTxtReduceBottom  = "Уменьшить снизу к предыдущей закладке";
    sTxtAll           = "Все";
    sTxtInSel         = "В выделенном";
    sTxtReplaceWith   = "заменить на:";
  }

Ну или возьмите у Andrey_A_A готовый (версию скрипта сначала проверьте), только там что-то было не совсем то или без перевода, не помню.

Offline
Posts: 9
Joined: Wed Aug 20, 2014 1:23 am

Post by Drums »

Skif_off большое спасибо за помощь! Всё работает. К сожалению, самостоятельно открывается ListBookmarks.txt. И правда, зачем? Никак не исправить?

LineBoardBookmarks.js:

Что именно этот скрипт делает? Я закинул его в C:\Windows\SysWOW64\AkelFiles\Plugs\Scripts, но ничего не произошло.

Добавлено:

Есть пример контекстного меню для сохранения закладок только выбранного файла (одно окно в режиме многооконности), а не всех? Иначе удаляет все закладки, если файлы не открыты.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Drums
Не знаю, как поправить, нужно смотреть. Посмотрите BookmarksPlus.vbs, в начале были ключи запуска, может там что-то подходящее? Или выложите вместе с Functions.vbs на rghost.ru, например, я с телефона.

Скрипт отнюдь не достаточно положить :) Его нужно вызвать или прописать запуск вместе с AkelPad. Как правило, в начале скрипта более-менее подробно написано, что и как.
LineBoardBookmarks.js существенно расширяет возможности использования закладок (по переводу уже должно быть понятно), странно, что его у вас еще нет :) У себя (есть кнопка на панели, есть пункт меню) запускаю без параметров:

Code: Select all

-"Операции с закладками" Call("Scripts::Main", 1, "LineBoardBookmarks.js")
меню появляется в позиции курсора.

З.Ы. Наверное, пора попросить Instructor перенести крайние сообщения в тему обсуждения скриптов?

Offline
Posts: 9
Joined: Wed Aug 20, 2014 1:23 am

Post by Drums »

Удалось запустить LineBoardBookmarks.js, спасибо. Но ничего полезного для себя не нашёл.

Меня всё ещё интересует вот это: "Есть пример контекстного меню для сохранения закладок только выбранного файла (одно окно в режиме многооконности), а не всех? Иначе удаляет все закладки, если файлы не открыты." Есть варианты?

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Drums wrote:Меня всё ещё интересует вот это:
Как вы себе это представляете? Файл закладок кладется рядом с нужным файлом?

Вообще, в Functions.vbs есть готовая функция GetListBookmarks().

Offline
Posts: 47
Joined: Fri Mar 27, 2015 7:46 am

Post by Akuro »

Sometimes I lose my bookmarks.
Where do bookmarks get saved? Into what file?

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Akuro wrote:Where do bookmarks get saved? Into what file?
The bookmarks, marked text (if any) and folded parts (if any) are saved by the Session plugin. By default, it's saved to the file "AkelFiles\Plugs\Sessions\OnExit.session".

Offline
Posts: 47
Joined: Fri Mar 27, 2015 7:46 am

Post by Akuro »

DV
I don't have a file "OnExit.session"
Only .session files named after my saved sessions. Which explains why it kept the bookmarks for these files residing in saved sessions, but not for my other - non-sessioned bookmarks. Or so I think.

Went to settings and enabled "Save on exit: OnExit" - I had this DISabled because I thought it would always save my sessions on exit. Which is something I don't want.

So, thanks for this information. This will - hopefully - solve my problem. :)
Post Reply