Закрытие вкладки + закрытие редактора

berserker
Posts: 7
Joined: 09.10.2023 19:37

Закрытие вкладки + закрытие редактора

Post by berserker »

Пытаюсь прикрутить CudaText вместо редактора Far Manager, возникла проблема с захламлением вкладок. В файловом менеджере (Far, Total Commander) часто открываешь много разных файлов, редактируешь (или не редактируешь) пару символов и закрываешь. Использование обычно такого вида: выбрал файл, нажал F4, подправил что-то, Esc, перешёл к другому файлу, F4, отредактировал, вышел. Проблема в том, что если включить в CudaText выход по Esc, то вкладка открытого файла всё-равно остаётся и при следующем открытии. Таким образом если пройтись по десятку-другому файлов то в сессии накапливается десяток-другой вкладок. Это неудобно.

Можно ли как-то сделать так (плагином, например), чтобы при выходе из редактора по Esc, закрывался не только редактор, но и активная вкладка?

С такой ф-цией было бы удобно использовать CudaText как основной редактор файлового менеджера - если какой-то файл требуется оставить для редактирование, то назад в файловый менеджер переключается по Alt+Tab, а если это быстрое редактирование то выходим по Esc и следы этого файла в сессии не остаются.
main Alexey
Posts: 2245
Joined: 25.08.2021 18:15

Re: Закрытие вкладки + закрытие редактора

Post by main Alexey »

да, можно так сделать. это все по опциям.
опции которые надо подергать (менять в user.json):

ui_reopen_session_cmdline (может хватить этой одной)
ui_reopen_session
ui_auto_save_session
berserker
Posts: 7
Joined: 09.10.2023 19:37

Re: Закрытие вкладки + закрытие редактора

Post by berserker »

Основная загвоздка, которую я не понимаю как реализовать без форка самого редактора это как повесить такое действие на Esc? Ведь по Esc там куда других действий в зависимости от контекста - закрытие окна поиска, отмена лишних курсоров, итд. Так то просто закрытие вкладки + закрытие редактора можна и плагином сделать.
main Alexey
Posts: 2245
Joined: 25.08.2021 18:15

Re: Закрытие вкладки + закрытие редактора

Post by main Alexey »

не пойму, а вы видели опции:

ui_esc_close
ui_esc_close_console
ui_esc_close_finder

? они же работают, да?
berserker
Posts: 7
Joined: 09.10.2023 19:37

Re: Закрытие вкладки + закрытие редактора

Post by berserker »

Работают, в том то и дело, но они конфликтуют с тем, что я хочу.
Если описать проще, я хочу, чтобы при выходе из редактора по Esc закрывалась текущая открытая вкладка в нём, то есть Esc = закрытие вкладки + выход. Закрытия вкладки + выход я так понимаю можно сделать без проблем и макросами и плагином, проблема возникает, когда я это комбинированное действие пытаюсь назначить на Esc - оно конфликтует с этими другими действиями - закрытие файндера, итд. Как назначить своё действие на Esc, но не терять возможность закрывать по Esc файндер, лишние курсоры, итд?
main Alexey
Posts: 2245
Joined: 25.08.2021 18:15

Re: Закрытие вкладки + закрытие редактора

Post by main Alexey »

реацкия на Esc зашита в код. конфликт будет всегда. хотя можно попробовать обработать VK_ESCAPE (=27, см модуль cudatext_keys.py) в событии on_key.

лучше всего поменяйте опцию "сохранять сессию на выходе" (одна из опций которую я уже привел выше). это поможет?
berserker
Posts: 7
Joined: 09.10.2023 19:37

Re: Закрытие вкладки + закрытие редактора

Post by berserker »

main Alexey wrote: 13.10.2023 08:25 реацкия на Esc зашита в код. конфликт будет всегда. хотя можно попробовать обработать VK_ESCAPE (=27, см модуль cudatext_keys.py) в событии on_key.
Да, это то что мне нужно, т.к. мне ещё при выходе скорее всего для удобство понадобится вернуть фокус на Far Manager.
Я так понимаю в обработке VK_ESCAPE мне нужно проверить, открыт ли finder, открыта ли консоль, и есть ли множественные курсоры, и только в таком случае выполнить своё действие? Или on_key не сработает если одно из этих условий выполняется?
main Alexey
Posts: 2245
Joined: 25.08.2021 18:15

Re: Закрытие вкладки + закрытие редактора

Post by main Alexey »

в обработке VK_ESCAPE мне нужно проверить, открыт ли finder, открыта ли консоль, и есть ли множественные курсоры, и только в таком случае выполнить своё действие?
нет, не надо это проверять, можно просто реагировать на on_key.

и потом нет АПИ для проверки "открыт ли finder".
для "открыта ли консоль" есть app_proc().
Или on_key не сработает если одно из этих условий выполняется?
наверное сработает всегда.
berserker
Posts: 7
Joined: 09.10.2023 19:37

Re: Закрытие вкладки + закрытие редактора

Post by berserker »

а как сделать, чтобы в плагине метод on_key вызывался? Я добавил в класс Command метод def on_key(self, ed_self, key, state):
не не похоже, чтобы он вызывался. нужно что-то где-то ещё прописать?
main Alexey
Posts: 2245
Joined: 25.08.2021 18:15

Re: Закрытие вкладки + закрытие редактора

Post by main Alexey »

да, прописать в файле install.inf.
так же как это делает плагин MakePlugin в делаемых плагинах.
Post Reply