Python 3.8
Init: cuda_project_man
Startup: 560ms, plugins: 30ms (project_man 33ms)
Init: cuda_config_keys
Traceback (most recent call last):
File "/home/user/.config/cudatext/py/cuda_config_keys/cd_config_keys.py", line 47, in dlg_config_keys
CfgKeysDlg().show()
File "/home/user/.config/cudatext/py/cuda_config_keys/cd_config_keys.py", line 144, in __init__
m.ks2id = M.prep_keys_info()
File "/home/user/.config/cudatext/py/cuda_config_keys/cd_config_keys.py", line 81, in prep_keys_info
cmdCNKKIs = collect_keys()
File "/home/user/.config/cudatext/py/cuda_config_keys/cd_config_keys.py", line 59, in collect_keys
cmdinfos = [('Commands'
File "/home/user/.config/cudatext/py/cuda_config_keys/cd_config_keys.py", line 70, in <listcomp>
,f('{},{},{}', cmd['p_module'], cmd['p_method'], cmd['p_method_params']).rstrip(',')
KeyError: 'p_module'
@kvichans
Репро?
репро на этой папке settings
settings.zip
Настройки в папке - ок.
Какие действия для получения сбоя?
Чистая куда 1.101 win x64
кладем в нее папку settings
вызов плага
Ага. Нужно найти что в АПИ поломалось. Посмотрю
Размещение у беты стало мутным. Поэтому для каждой версии теперь нужно уточнение: это релиз (он в стабильном месте) или бета (нужна явная ссылка).
1.101 - это бета/релиз?
1.101 это релиз
почему не юзаете d.get('p_nnnnnn') вместо d['p_nnn'] ?
fix of line 70
,f('{},{},{}', cmd.get('p_module', ''), cmd.get('p_method', ''), cmd.get('p_method_params', '')).rstrip(',')
Сбой не повторился после
Давайте доведем расследование до конца.
Добавьте перед сбоем лог для cmd - нужно выяснить на какой из команд сбоит
{'type': 'recentfile', 'cmd': 8808, 'name': 'recent file: language_python.lua (~/Downloads/data/plugins)', 'key1': '', 'key2': '', 'key1_init': '', 'key2_init': ''}, {'type': 'recentfile', 'cmd': 8809, 'name': 'recent file: highlighter.lua (~/Downloads/data/core/doc)', 'key1': '', 'key2': '', 'key1_init': '', 'key2_init': ''}]
и них нет нужноого key
и надо игнорить эти два новые типа.
1.0.316 (app 1.90.0)
код ненадежный у вас :(
ToDo: игнорить два новые типа.
дать пач?
надо обновить быстро
Исправляю.
Тестировать только у вас.
Замените в строке 74
if cmd['type']!='lexer'
на
if cmd['type'] not in ('lexer', 'openedfile', 'recentfile')
Помогло?
да.
еще мою правку надо с cmd.get
Дальше я сам. Опубликую через полчаса
В keys.json из settings.zip нет ни openedfile, ни recentfile - поэтому я не смог повторить сбой
это да...
Не могу вспомнить зачем в плагине игнорировались команды с типом lexer. И нужно ли теперь дополнительно игнорировать типы openedfile и recentfile.
Штатный назначатель хоткеев позволяет связывать команды этих типов с хоткеями?
* "type": str: Possible values:
"cmd": usual built-in command
"lexer": command to activate lexer
"plugin": plugin command
"openedfile": command to switch active tab
** "recentfile": command to reopen recent file
давайте доведем до конца. не игнорить три типа, а юзать ТОЛЬКО ДВА типа - cmd, plugin
Штатный назначатель хоткеев позволяет связывать команды этих типов с хоткеями?
не должен.
ОК. Оставляем два типа.
Протестируйте версию из ГХ
работает ОК
ок, публикую
history
fixed: skip all commands except built-in commands and plugins
надо согласовать title плагина и названия пунктов в Plugins - Config / Configure
ок, делаю..
и dialog caption.
Выложил в ГХ
стало ОК
ок