Возможно ли модифицировать консоль?
https://github.com/halfbrained/cuda_cns_complete
Вроде все правильно.
(Сначал сделал через обычное меню. Потом проверил и оказалось, что 'Editor.complete()' работает в консоли , пришлось переделывать)
Вроде все правильно.
(Сначал сделал через обычное меню. Потом проверил и оказалось, что 'Editor.complete()' работает в консоли , пришлось переделывать)
-
- Posts: 392
- Joined: 01.12.2020 13:46
Я в восторге от этого плагина, хотел еще один сделать для консоли, и тоже нужен 'on_key_down()' консоли... возможно добавить как-то второй callback?
DLG_PROP_GET не возвращает существующий 'on_key_down' callback, так что я не могу сам перевызвать...
EDIT: я хотел испольнять комманды начинающиеся с '>' - в терминале (через 'os.popen('ls -l').read()'), мелоч, так что не страшно если невозможно
DLG_PROP_GET не возвращает существующий 'on_key_down' callback, так что я не могу сам перевызвать...
EDIT: я хотел испольнять комманды начинающиеся с '>' - в терминале (через 'os.popen('ls -l').read()'), мелоч, так что не страшно если невозможно
-
- Posts: 392
- Joined: 01.12.2020 13:46
>и тоже нужен '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.
как это? у контрола 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.
Имел в виду имень несолько 'callables' на 'on_key_down' формы.
Может я что-то неправильно делаю, но у меня не работает '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;'})
-
- Posts: 392
- Joined: 01.12.2020 13:46
-
- Posts: 392
- Joined: 01.12.2020 13:46
уточню
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'
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'
Да, у меня тоже странная строка
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КБ у меня )
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КБ у меня )
-
- Posts: 392
- Joined: 01.12.2020 13:46