Cudatext: plugin Configure Hotkeys bug

Created on 24 May 2020  ·  33Comments  ·  Source: Alexey-T/CudaText

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

bug plugins

All 33 comments

Репро?

репро на этой папке 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(',')

Сбой не повторился после

  • Установка чистой 1.101
  • Копирование в нее вашего keys.json
  • Запуск Куд и установка плага

Давайте доведем расследование до конца.
Добавьте перед сбоем лог для 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)

  • add: app_proc: PROC_GET_COMMANDS gets new kinds "openedfile", "recentfile"

код ненадежный у вас :(

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.

Выложил в ГХ

стало ОК

ок

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Alexey-T picture Alexey-T  ·  4Comments

EchedeyLR picture EchedeyLR  ·  3Comments

Alexey-T picture Alexey-T  ·  5Comments

xcme picture xcme  ·  5Comments

Alexey-T picture Alexey-T  ·  7Comments