Возможно ли модифицировать консоль?

uvviewsoft
Posts: 392
Joined: 01.12.2020 13:46

Post by uvviewsoft »

спасибо, интересно!
Shovel
Posts: 141
Joined: 31.12.2019 10:16

Post by Shovel »

https://github.com/halfbrained/cuda_cns_complete
Вроде все правильно.
(Сначал сделал через обычное меню. Потом проверил и оказалось, что 'Editor.complete()' работает в консоли :D, пришлось переделывать)
uvviewsoft
Posts: 392
Joined: 01.12.2020 13:46

Post by uvviewsoft »

спасибо! давайте порешаем вопросы. в GH issues. и бету обновляю- 5 минут
Shovel
Posts: 141
Joined: 31.12.2019 10:16

Post by Shovel »

Я в восторге от этого плагина, хотел еще один сделать для консоли, и тоже нужен 'on_key_down()' консоли... возможно добавить как-то второй callback?
DLG_PROP_GET не возвращает существующий 'on_key_down' callback, так что я не могу сам перевызвать...

EDIT: я хотел испольнять комманды начинающиеся с '>' - в терминале (через 'os.popen('ls -l').read()'), мелоч, так что не страшно если невозможно
uvviewsoft
Posts: 392
Joined: 01.12.2020 13:46

Post by uvviewsoft »

>и тоже нужен 'on_key_down()' консоли... возможно добавить как-то второй callback?

как это? у контрола editor dlg_proc дает задать колбек

Special events for control "editor"/"editor_edit"/"editor_combo":
"on_change": Called after text is changed.
"on_caret": Called after caret position and/or selection is changed.
"on_scroll": Called after editor is scrolled.
"on_key_down": Called when user presses a key. Param "data" is tuple (int_key_code, str_key_state). Method can return False to disable default processing.
"on_key_up": Called when user depresses a key. Param "data" is tuple (int_key_code, str_key_state). Method can return False to disable default processing.

>испольнять комманды начинающиеся с '>' - в терминале

ой, вряд ли такое будет удобно юзерам, лучше доработать plugin Terminal.
Shovel
Posts: 141
Joined: 31.12.2019 10:16

Post by Shovel »

Имел в виду имень несолько 'callables' на 'on_key_down' формы.

Может я что-то неправильно делаю, но у меня не работает 'on_key_down' инпута консоли, ничего не происходит. Вот что я пробывал:

Code: Select all

>>> hcons = app_proc(PROC_GET_CONSOLE_FORM, '')
>>> dlg_proc(hcons, DLG_PROP_SET, prop={'keypreview': True})  # True или False не имеет значения
>>> dlg_proc(hcons, DLG_CTL_PROP_SET, name='input', prop={'on_key_down': lambda *args,**vargs: print('key')})
# и тут тишина, и после следующей строки
>>> dlg_proc(hcons, DLG_CTL_PROP_SET, name='input', prop={'on_key_down': 'module=cuda_console_complete;func=_test2;'})
uvviewsoft
Posts: 392
Joined: 01.12.2020 13:46

Post by uvviewsoft »

ОК,обновил бету(там же).

1.0.362 (app 1.123.2)
* add: dlg_proc: DLG_PROP_GET returns also events: about 10 keys 'on_xxxxx'
* add: dlg_proc: DLG_CTL_PROP_GET returns also events: about 20 keys 'on_xxxxx'

оно отдает странные строки в 'on_xxxx'. тестим.
uvviewsoft
Posts: 392
Joined: 01.12.2020 13:46

Post by uvviewsoft »

уточню

1.0.362 (app 1.123.2)
* add: dlg_proc: DLG_PROP_GET returns also events, if they are set: 'on_close', 'on_close_query', 'on_key_down', 'on_key_up', 'on_resize', 'on_mouse_enter', 'on_mouse_exit', 'on_show', 'on_hide'
* add: dlg_proc: DLG_CTL_PROP_GET returns also events, if they are set: 'on_change', 'on_click', 'on_click_dbl', 'on_focus_enter', 'on_focus_exit', 'on_menu', 'on_select', 'on_fold', 'on_unfold', 'on_listbox_draw_item', 'on_mouse_enter', 'on_mouse_exit', 'on_mouse_down', 'on_mouse_up', 'on_editor_caret', 'on_editor_scroll', 'on_editor_key_down', 'on_editor_key_up', 'on_editor_click_gutter', 'on_editor_click_gap', 'on_editor_click_link', 'on_editor_paste'
Shovel
Posts: 141
Joined: 31.12.2019 10:16

Post by Shovel »

Да, у меня тоже странная строка
module=cudatext;func=_dlg_proc_callback_proxy;info="140588559415088:<bound method Command.on_cns_key of <cuda_console_complete.cns_complete.Command object at 0x7fdd523a9c50>>";
<class 'str'>

Я так понимаю, что если нужда подписываться на чужие ивенты станет распространенной, чистый способ организоывать - написать отдельный плагин, через который нужно будет подписываться. Вроде не сложный плагин был бы.
Пока заброшу свою последнюю идею.

(мне очень смешно, сколько мороки было с 5КБ плагином, когда файл менеджер уже 70КБ у меня :D )
uvviewsoft
Posts: 392
Joined: 01.12.2020 13:46

Post by uvviewsoft »

хорошо, тогда скоро выложу обновление Куд и плагин ConsoleComplete я уже выложил..
Post Reply