Page 1 of 4

CudaText. Порядок табов в Recents

Posted: 07.08.2023 13:36
by mix-7
Проблема со списком Recents:

Пока работаешь в редакторе, закрытые пользователем вкладки попадают в список Recents в порядке их закрытия.
Но при открытии они не удаляются оттуда, что было бы логично.

Но, что кажется неудобным, при закрытии CudaText gорядок табов в Recents нарушается:
то, что было недавно закрыто пользователем вверху, оказывается в низу списка.
Так как CudaText, закрывая табы справа налево, записывает их и в сессию, и в список Recents сверху вниз.
После открытия недавно закрытые пользователем файлы оказываются либо внизу, либо вытеснены.

Пожелание: сохранить закрытые пользователем табы и их порядок.

Вот что по этом вопросу в другой теме:


UVviewsoft forums • Просмотр темы - Разные недочеты/баги
https://synwrite.sourceforge.net/forums ... 639#p17639
Сообщение mix-7 » 01.08.2023 00:26
mix-7 wrote: переоткрыл из recents 3, 4.



Потом их закройте перед закрытием Куда.
Они при старте окажутся внизу.

У меня 1-P вкладок.
Открываю файл1, файл2, файл3
Закрываю файл3, файл2, файл1
файл1, файл2, файл3 наверху списка Recents
Закрываю Куд
Открываю - эти файлы на позициях M, N, O - внизу.

Понятно, что Куд при закрытии добавляет свои вкладки в список Recents в порядке справа налево.
Там цвета, другие атрибуты вкладок.

Понятно, сложно отделить закрытые пользователем от закрытых Кудой.

Но в идеале хотелось бы сохранения порядка, что был перед закрытием, чтобы последние закрытые файлы оставались наверху.
Это небольшое неудобство.
Оно не мешает, его нет при работе, список Recent не тасуется.
Но он перемешивается при закрытии Куд.
И в следующий раз порядок Recent не восстанавливается, к сожалению.

Отсюда (и выше)
main Alexey wrote:
Но он перемешивается при закрытии Куд.
И в следующий раз порядок Recent не восстанавливается, к сожалению.
не знаю как это решить. табы которые вы руками не закрывали все равно же надо в Resents положить.
А можно как-то программно их различать?
Тек, которые закрыли руками и те, что закрыл редактор после закрытия?
По событию on_exit, если такое есть.

В первом приближении.
Табы, что закрыли руками, помечать в Resents битовым/символьным флагом.
(Может, эта лишняя сущность и не понадобится, если:)
И/Или
При закрытии табов редактором CudaText записывать табы в обратном порядке снизу вверх.
(Сейчас закрывается, начиная, с правого таба сверху вниз)

Тогда:
Табы, закрытые пользователем, останутся наверху, что удобно: он с ними работал, закрыл недавно, возможно, захочет вскоре вернуться к ним или посмотреть, что редактировал последним.
А это очень удобно, и порядок не нарушается при последующих открытиях, табы не тасуются вниз.

А запись в Resents (снизу вверх) закрываемых по завершении CudaText табов в порядке слева направо логичнее и удобнее,
хотя и потребует записать их в обратном порядке в массив.
Или переписать цикл закрытие с 0 до n, а не с конца с n до 0.

Открываются же табы все равно не из Resents, а из сохраненной сессии.

Да, небольшая проблема в том, если размер списка Resents больше нужного для записи количества табов, и если писать снизу вверх, то будут пустые места в середине.
Тогда, наверное, все-таки понадобится признак закрытых вручную табов?
Или смотреть, чего нет в сессии?



Как это реализовать красиво и компактно?

Да, можно, наверное, ставить разделитель в Resents '----------------': сверху "ручные" табы (закрытые пользователем), сниу от разделителя и вниз закрытые справа налево табы при завершении CudaText.

Posted: 07.08.2023 13:39
by main Alexey
а можете привести примеры редакторов/IDE которые делают так как вы предложили? чтобы закрытые "вручную" оставались вверху?

а если так-
- у нас опция "ui_max_history_menu" это 6
- открыли много файлов (20)
- вручную закрыли 8, остальные закрылись самой Куд
- при старте что, показать только 6 закрытых вручную?

Posted: 07.08.2023 13:53
by mix-7
> при старте что, показать только 6 закрытых вручную?

да, на мой взгляд, это было бы удобнее.
И в том же порядке.

> а можете привести примеры редакторов/IDE которые делают так как вы предложили? чтобы закрытые "вручную" оставались вверху?

посмотрю

Posted: 07.08.2023 13:56
by mix-7
> а можете привести примеры редакторов/IDE которые делают так как вы предложили? чтобы закрытые "вручную" оставались вверху?

Pluma, gedit

Posted: 07.08.2023 14:02
by main Alexey
поставил Pluma в Xubuntu из пакетов. 1.26.0.
закрытые руками файлы остаются в recent (dropdown около иконки тулбара).
закрытые самой прогой при выходе- вообще пропадают ,их нету.
это уже заскоки. разве все так делают с "закрытыми самой прогой"?

Posted: 08.08.2023 09:15
by mix-7
Ну и ладно, оставим как есть?
Немного неудобно, что закрытые пользователем вкладки при следующем старте смещаются вниз, но они не пропадают, их можно увидеть в низу списка.

Posted: 08.08.2023 09:50
by main Alexey
если поведение Плюмы часто встречается,то можно и опцию сделать,чтоб как там.

Posted: 09.08.2023 14:00
by mix-7
Pluma и gedit вообще сохраняют открытые файлы в списке LIFO (последние открытые сверху)
Независимо, были закрыты они пользователем или редактором.
При повторном открытии вкладки не сохраняются, в списке последние открытые файлы.
Просто список последних ОТКРЫТЫХ файлов.

Не знаю, может, так логичнее?
Надо подумать!

Как вариант - отвести 5-7-(настраиваемое количество) в Recents сверху для закрытых пользователем вкладок.
(При не закрытом еще редакторе)
А пропуски не показывать.

Или, раз вкладки сохраняются в сессии, не дублировать их в Recents?
Но тогда пропадут установленные атрибуты вкладок!

Дать им допольнительный флажок в Recents, чтобы не показывать?
...

Posted: 09.08.2023 14:05
by main Alexey
точно - что именно при закрытии вкладки заносятся в recents. так было в других едиторах с которых я когдато брал пример.
pluma+gedit делают вообще черти что.
если брать пример то с топовых.
vs code, sublime, ...

Posted: 09.08.2023 14:20
by main Alexey
конкретно что у нас улучшить я пока не знаю. проверьте что делают vs-code + sublime. с recents. есть ли у нас что перенять от них?