Разные недочеты/баги

main Alexey
Posts: 2396
Joined: 25.08.2021 18:15

Re: Разные недочеты/баги

Post by main Alexey »

В вики описано дефолт-имя сессии
"Session" is a set of opened documents, with properties of each document. CudaText sessions are stored in JSON files with .json and .cuda-session extensions. Default session file name is "history session.json" in the "settings" folder.
main Alexey
Posts: 2396
Joined: 25.08.2021 18:15

Re: Разные недочеты/баги

Post by main Alexey »

А как определить что файл сессии пуст? вы сохранили копию файла после ресета, там нули что ли, или файл пустой? если нули или файл пустой то можно выдать msg-box. и можно попробовать скопировать последний бекап.

вы пока сделайте бекап всей папки settings чтобы остались файлы.
mix-7
Posts: 801
Joined: 11.05.2018 11:02

Re: Разные недочеты/баги

Post by mix-7 »

ваши отчеты
А не писал ранее - все идеально работает, есть отдельные замечания и предложения, я их записываю себе в wiki в CT ). Но они не критичные.
А читать форум очень интересно, но некогда, к сожалению.

По https://cudatext.github.io/history.txt :
1.222.3 (2025/03) и др. имел ряд подверсий, хорошо бы по ним разбивать изменения.
В вики описано дефолт-имя сессии
Спасибо! Всегда RTM! Имени сессии по умолчанию нет в файле 'history session.json', нет параметра "session": по умолчанию.
Если открываешь иную, чем 'history session.json' сессию, то появляется этот параметр с именем файла сессии.
Возможно, чтобы вернуться к 'history session.json', достаточно стереть строку с "session".
mix-7
Posts: 801
Joined: 11.05.2018 11:02

Re: Разные недочеты/баги

Post by mix-7 »

легко поправил. и с code-tree и с Folding Caption теперь все окей.
В Command palette есть команда 'Code tree go to block for current node'
(Кстати, нет кроме опытного пути найти соответствие команды из Command palette и такой же команды макросов)?
А как и чтовы поправили?
Как в коде определяете начало, заголовок блока?
В API не нашел.

(Мне на будущее, для перехода к блоку в файле/вкладке по ссылкам формата '<имя файла> <заголовок блока в файле>. Конечно, было бы проще реализовать в макро, но пока не представляю, как в макро распарсить ссылку.)
mix-7
Posts: 801
Joined: 11.05.2018 11:02

Re: Разные недочеты/баги

Post by mix-7 »

А как определить что файл сессии пуст?

Я здесь описал содержимое файл а 'history session.json' по умолчанию, его содержимое размером 396 байт.

Можно, конечно, при закрытии записывать его, файла сессии, хеш, а при открытии сравнивать, если не совпадает, предлагать восстановить сессию из бэкапа. Но это избыточно, да? Хотя плюсик в "Дифирамбы". )

Подхожу к главному. Скорее всего, тогда 'history session.json' файла просто не было.
Я вчера промоделировал ситуацию: удалил 'history session.json' и запустил CudaText.
Был создан файл 396 байт по ссылке выше.

Идея проста.
Если файла 'history session.json' нет, давать сообщение и предлагать восстановить сессию из бэкапа.
Если 'history session.json', а его размер 396 байт и есть бэкапы, а также есть 'history.json' с историей (есть несколько непустых параметров), то тоже предлагать восстановить сессию из бэкапа.
mix-7
Posts: 801
Joined: 11.05.2018 11:02

Re: Разные недочеты/баги

Post by mix-7 »

_
_
_
Нашел и воспроизвел баг! :ugeek:

Сейчас, при запущенном CT, поискал файл 'history session.json' - его нет!
Т.е. при любом аварийном завершении CT при следующем старте вкладки пропадут!

:idea: Проверим жестокой проверкой в терминале:

Code: Select all

$ killall cudatext
Смотрим '/.config/cudatext/settings'
ДА, файла 'history session.json' нет!

И после старта вкладок нет!
После быстрого, чтобы не прошло 30 секунд, закрытия нашего замечательного редактора в '~/.config/cudatext/settings'
появился файл 'history session.json' размером всего 395 байт с содержимым:

Code: Select all

{
  "groups": 1,
  "gr": {
    "panel": "0,0",
    "pages": "100,100,52,36,0,1358,0,1358,0,0,0,0,"
  },
  "tab_index": {
    "g0": 0,
    "g1": -1,
    "g2": -1,
    "g3": -1,
    "g4": -1,
    "g5": -1,
    "g_active": 0
  },
  "panels": {
    "side_show": true,
    "side_panel": "Code tree",
    "side_size": 290,
    "bottom_show": false,
    "bottom_panel": "",
    "bottom_size": 162
  }
}

395 байт это не 2 КБ предварительно созданной копии 'history session.1 (Копия) 20250326.cuda-session'.
Копирую в gedit ее содержимое в 'history session.json' и запускаю любимый CT.
Вкладки на месте! И все, что набито непосильным трудом во вкладках! :D :!:
Профит!
mix-7
Posts: 801
Joined: 11.05.2018 11:02

Re: Разные недочеты/баги

Post by mix-7 »

А сейчас файл 'history session.json' есть, не пропадает после закрытия CT.
Странно. Я его не удалял в предыдущем эксперименте.
main Alexey
Posts: 2396
Joined: 25.08.2021 18:15

Re: Разные недочеты/баги

Post by main Alexey »

>1.222.3 (2025/03) и др. имел ряд подверсий, хорошо бы по ним разбивать изменения.
нет, я не буду делать отдельный список в хистори ради 1-2х изменений. после 1.222.3.0 была только 1.222.3.1 с одним изменением
+ add: session auto-saving by "ui_session_save_interval":30 now also saves backup-files, if "ui_backup_sessions" is set

>Если открываешь иную, чем 'history session.json' сессию, то появляется этот параметр с именем файла сессии.
Возможно, чтобы вернуться к 'history session.json', достаточно стереть строку с "session".
да, верно.
или можно вызвать в плаге Session Manager - 'forget session ....'.

>А как и чтовы поправили?
в коде finder для команды "найти следущее вхождение" - убрал блокировку вызова onChangeCaret.

>Как в коде определяете начало, заголовок блока? В API не нашел.
это определяет или лексер, или tree-helper.

---------
про предложение восстановить сессию я понял идею, подумаю на днях.
main Alexey
Posts: 2396
Joined: 25.08.2021 18:15

Re: Разные недочеты/баги

Post by main Alexey »

@mix-7, нужно ваше мнение тут -
https://synwrite.sourceforge.net/forums ... php?t=3236
mix-7
Posts: 801
Joined: 11.05.2018 11:02

Re: Разные недочеты/баги

Post by mix-7 »

после 1.222.3.0 была только 1.222.3.1 с одним изменением
+ add: session auto-saving by "ui_session_save_interval":30 now also saves backup-files, if "ui_backup_sessions" is set
Ну, на этот раз это сработало! Спасибо за информацию!
Не сохранял версии history.txt, не мог сравнить.
А после вашего поста стал разбираться, что за это опции и обнаружил и установил в user.json

Code: Select all

  "ui_auto_save_session": false,
Теперь не пропущу несохраненные вкладки при закрытии.
А то я писал ранее про коллизию, когда один файл (они синхронизируются через облако) редактируешь на двух ПК и возникает коллизия (спасибо, что ее отслеживает программа-клиент облака!). Приходится, ругнув себя, запускать плагин Differ или программу Diffuse, отслеживать изменения, удалять лишнюю версию. А это лишние нервы и риски потери информации.
Несмотря на то, что я сделал красным в Color theme (сохранил как My_theme) 'tabs, font, modified tab', зачастую в спешке ухода с работы, некоторые измененные вкладки оставались несохраненными.

Хотя после недавней пропажи вкладок я познал дзен 5, не больше, постоянных вкладок вместо обычных постоянны 17 (посчитал через сохраненный список Tabs list:). Ведь всегда легко и быстро можно открыть нужный файл (особенно удобно в QT - по части имени файла).
Часто используемые сортировать сверху.
Есть и удобный список recent. Который не тасуется непредсказуемо хаотично ;) (ну почти), как ранее, а стабилен от старта к старту. :!: Класс!
нужно ваше мнение тут -
Ого! Спасибо за доверие! Посмотрю, подумаю сегодня-завтра, напишу.
Post Reply