Sessions plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

InFive wrote:до сих пор не могу въехать как пользоваться Сессиями, поэтому и не пользуюсь Сессиями...

надо выбрать время чтобы разобраться как оно работает и как с ним работать... а пока Избранное рулит...
Проще пареной репы.

Открываете все свои избранные файлы в окне akelpad'а.
Открываете диалог сессий, жмёте сохранить, даёте имя сессии, к примеру, "Избранное".
Жмёте "Закрыть", - все файлы сессии закроются.

Потом открываете ещё файлы какой-нибудь другой тематики, о5 -> Сохранить -> Закрыть.

И так наколбашиваете сколько угодно сессий, т.е. "Избранных".

Потом скачиваете скрипт SessionMenu.js Kley'я. Моя кнопка для него пока такая:

Code: Select all

"Меню сессий" Call("Scripts::Main", 1, "SessionMenu.js", `-m="%m" -i="%i" -p=1 -e=0`) Icon("%a\AkelFiles\Plugs\Sessions.dll", 0)
Жмёте на неё - profit!

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Скрипт работает класно, но хотелось бы всё-таки в с ContextMenu-плагине иметь специальный пункт SESSIONS. Такое решение позволит сделать кнопку со стрелкой, и можно будет нажимать и на кнопку (вызов диалога), и можно будет жать на стрелочку для выбора файлов сессии (также, как сейчас работает скрипт).

И предложение открывать диалог на какой-либо определённой сессии в силе.

Также хотелось бы иметь возможность программного доступа к функции "Удалить несуществующие" для определённой сессии, типа

Code: Select all

"Удалить несуществующие" Call("Sessions::Main", 6, "SESSION_NAME")

Добавлено:
Хотелось бы иметь возможность встраивать панель сессий не только сверху, но и с любой стороны экрана.
Было бы здорово, к примеру открыть по комбинации клавиш панель слева по всей высоте, а потом чтобы выше или ниже можно было открыть ещё и панель Explorer-плагина.


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

Offline
Posts: 202
Joined: Sat Mar 28, 2015 2:36 pm
Location: Russia

Post by Kley »

VladSh
VladSh wrote:хотелось бы всё-таки в с ContextMenu-плагине иметь специальный пункт SESSIONS. Такое решение позволит сделать кнопку со стрелкой
Тулбар:

Code: Select all

"Sessions" Call("Sessions::Main") Menu("SessionsMenu") Icon("%a\AkelFiles\Plugs\Sessions.dll", 0)
Контекстное меню:

Code: Select all

"SessionsMenu"
{
  "OnExit" Call("Scripts::Main", 1, "SessionMenu.js", `-s="OnExit"`)
  "OnExit-1" Call("Scripts::Main", 1, "SessionMenu.js", `-s="OnExit-1"`)
  "OnExit-2" Call("Scripts::Main", 1, "SessionMenu.js", `-s="OnExit-2"`)
}
:)
VladSh wrote:Хотелось бы иметь возможность встраивать панель сессий не только сверху, но и с любой стороны экрана.
Просто попробуйте переместить окошко плагина (любого плагина), за заголовок, в нужную сторону до появления пунктирной рамки. Или я опять не о том?

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Kley wrote::)
Вы предлагаете пользователям после каждого изменения (добавления или удаления) сессий лазить и править меню? :)
Kley wrote:Просто попробуйте переместить окошко плагина (любого плагина), за заголовок, в нужную сторону до появления пунктирной рамки.
Да, вспомнил, проскакивало где-то здесь.
Хоть такое поведение и неочевидно, но часть вопроса действительно снимается. При открытии панели Explorer-плагина он отображается справа от панели сессий. Может быть подскажете, как их пристыковать друг над другом? И когда один закрываешь, чтобы второй автоматически занимал всю высоту?

Offline
Posts: 202
Joined: Sat Mar 28, 2015 2:36 pm
Location: Russia

Post by Kley »

VladSh
VladSh wrote:как их пристыковать друг над другом?
Думаю, в AkelPad, ни как. Но расположение окон плагинов по типу Photoshop (одно над другим) было бы здорово.

Offline
Posts: 96
Joined: Tue Nov 10, 2015 4:56 am

Post by InFive »

VladSh wrote: Проще пареной репы.
ага, что-то не похоже... надо время потратить для этого, а это не означет проще чего-то там...
-------------------------------------------
итак, добавил несколько файлов в сессию "Избранное" из Избранного...
затем хочу изменить порядок файлов при отображении во всплывающем меню, для этого запускаю диалог плагина Session, делаю в диалоге порядок файлов другой, но во всплывающем меню порядок не меняется (даже после перезагрузки AP)...
что, открыть файл с сесcией и поменять местами в файле с сессией? ну это же не проще "паренной репы"...
у меня много файлов в Избранном, если перенести в сессию Избранное, и если я захочу изменить порядок файлов в сессии через диалог плагина, то в меню сессий не будет изменений...

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

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

InFive
1. Затраченное время на оба варианта одинаковое.

2. По поводу порядка. Если Kley читает это, то, думаю, добавит параметр, отвечающий за сортировку. Или может быть какое-то другое решение.

3. Непомещение списка на экране - проблема не только скрипта сессий, это общая проблема. Т.е. не может быть чисто его недостатком.
И по большей части это проблема не функционала, а организации работы с файлами конкретного пользователя. Можно разбить все эти огромные простыни файлов на разные сессии.


Конечно диалог сессий отстаёт от избранного отсутствием кнопок "Вверх", "Вниз" и т.д. Но, по моему, другие его достоинства в сочетанием со скриптом перевешивают.
Хотя в идеале (я ещё несколько лет назад предлагал) - объединить эти плаги (Sessions, RecentFiles) и функционал "Избранного" в один. Наверное это займёт много работы, потому наверное не делается... И ещё непонятно, нужно ли это ещё кому-то. Если только мне, тогда естественно, что это ненужно.

Offline
Posts: 96
Joined: Tue Nov 10, 2015 4:56 am

Post by InFive »

VladSh
спасибо

Offline
Posts: 202
Joined: Sat Mar 28, 2015 2:36 pm
Location: Russia

Post by Kley »

InFive
InFive wrote:затем хочу изменить порядок файлов при отображении во всплывающем меню
Диалог Sessions: http://akelpad.sourceforge.net/ru/plugins.php
1. Работа с проектами.
2. Сохранение и восстановление MDI сессии программы.
Именно сессии: нужные вкладки и с тем расположением, какое Вам нужно.
А копаться в... в не отсортированном меню... Тем более если оно
InFive wrote:не помещается на один экран
Или, как?

Добавлено:
>>

Offline
Posts: 157
Joined: Thu Nov 26, 2015 8:03 pm
Location: Rostov-on-Don

Post by Eskander88 »

Подскажите пожалуйста, как можно реализовать с помощью скрипта такую функцию для Sessions::Main :

Чтобы при закрытии всех вкладок автоматически сохранялась сессия last.session?

Offline
Posts: 267
Joined: Mon Mar 12, 2007 3:45 pm

Post by [Yustas.NeO] »

Пара предложений:
1. При отключенном режиме "Показывать путь файлов" хотелось бы иметь возможность видеть полный путь во всплывающей подсказке.
2. Хотелось бы видеть опцию "Показывать полный путь" в меню плагина.

Offline
Posts: 157
Joined: Thu Nov 26, 2015 8:03 pm
Location: Rostov-on-Don

Post by Eskander88 »

Eskander88 wrote:Подскажите пожалуйста, как можно реализовать с помощью скрипта такую функцию для Sessions::Main :

Чтобы при закрытии всех вкладок автоматически сохранялась сессия last.session?
Ссори, разобрался.. функция доступна в настройках плагина, Sessions::Main \ Настройки \ Сохранять при выходе \ [ OneExit ]

Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

Предложение для плагина:
1. Добавить функционал - сохранять сессию "OnExit.session" каждые 5 минут (выбор) - это поможет иметь "живую" сессию при "падении" программы или "крахе" системы.

2. Изменить принцип сохранения маркерованного текста в сессии, сейчас есть проблемы:
а) Есть документ в с маркированными 1000 строками.
В процессе работы удалили 900, но при сохранении сессии все несуществующие маркеры сохраняются в файл session.
Соответственно при открытии сессии документ в 100 строк имеет в памяти ещё 900 маркерованных строк, которые не существуют.
Более того, запись несуществующих маркеров записывается в файл не в строку /Name=... а с новых строк каждый фрагмент, образуя кашу из кода...
Т.е. нужно записывать в session не то что в памяти, а по факту - те маркеры, которые есть в документе.

б) В документе выделены 10 строк, длина которых более 10.000 символов и все они попадают в session
Предложение прописывать начальные и конечные позиции вместо всей маркерованной фразы:
/Marks=(#FF033E,#CDCD00,1,0,1000001,23150-33150)
Это сократит размер файла session

в) То же самое касается когда отмечены десятки длинных строк одним цветом. Они построчно ложатся в сессию
Предложение записывать в сессию не построчно, а начальный и конечный индекс одного и того- же цвета, что тоже отразится на уменьшении размера файла сессии.

3. Может быть нужно добавить Call("Coder::HighLight", N) - очистка памяти документа от несуществующих маркеров - это будет полезно для скриптов, работающих на удаление/перемещение/замену..., которые не касаются маркеров, хотя маркеры в памяти после работы скриптов остаются (как оказалось)
----------
Проблемы обнаружены не только мной, а группой пользователей: в течении года не могли понять почему AkelPad падает либо медленно открывается, выяснилось, что у тех, кто не пользовался Call("Coder::HighLight", 3) - снять все отметки, файл OnExit.session перевалил за несколько мегабайт, из-за мусора которого, AkelPad, просто "вставал в ступор".

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

1.
Andrey_A_A wrote:...сохранять сессию "OnExit.session" каждые 5 минут (выбор) - это поможет...
Сессия "OnExit" связана с конкретным событием - выходом из программы. Почему, если "уж очень хочется", не пользоваться принудительным сохранением

Code: Select all

Call("Sessions::Main", 2, "FILE")
Кто вам там запретит использовать "OnExit" вместо "FILE"?

2. Если несуществующие маркеры действительно в файл сессии записываются, то это следует как баг квалифицировать.
документ в с маркированными 1000 строками...
выделены 10 строк, длина которых более 10.000 символов...
Если это не "сферический конь в вакууме", то зачем так делать? Можно же иначе поступить:
Птица с сохранения выделения в сессиях снята, достаточно сохранения положения каретки в общих настройках. При необходимости устанавливается закладка.
Маркировать строки тысячами, чтобы потом просматривать глазами и удалять руками? Так никакого здоровья не хватит. Цепляем файл к БД и фильтруем sql-запросами. На худой конец есть "LinesFilter.js".

Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

opk44, все что я выше писал - не выдумано, а действительно нужно. И написал пожелание не к вам, а к автору. Если автор реализует - будет хорошо.
Все ваши советы (типа "уж очень хочется, то делай так", "сферический конь в вакууме", "Кто вам там запретит") пусты и давно пройдены и смахивает на "ну надо что-то написать..." :)
Post Reply