Page 1 of 3

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

Posted: 31.01.2021 14:58
by Shovel
Я хотел попробовать добавить простое auto-completion в консоль, но 'dlg_proc()' не хочеть работать с консолью.
Могу добавить новые виджеты, но на имеющихся DLG_CTL_PROP_GET и DLG_CTL_PROP_SET ничего не делают.

Posted: 31.01.2021 15:21
by uvviewsoft
надо яснее--что именно ты хочешь добавить. что такое "добавить"- это прямо новый контрол добавить между console input/ console log memo? или поверх положить? добавить как новую панельку в низ куды? (PROC_BOTTOMPANEL_*)

Posted: 31.01.2021 15:55
by Shovel
Как обычно - Ctrl+Space, добавить 'on_key_down' в нижний 'edit' консоли (этой консоли 'app_proc(PROC_BOTTOMPANEL_GET_CONTROL, 'Console')' ).

Posted: 31.01.2021 17:24
by Shovel
Ну, по 'on_console_nav' работает (pic)
Еще одна мелоч... если бы возможно еще было бы как-то получить 'locals()' из консоли, было бы отлично.

Posted: 31.01.2021 17:25
by uvviewsoft
даю доступ к консоли через dlg_proc. в 1.123.1 добавил-- см вики в конце "что добавилось". акшен для app_proc.

оно пашет! в консоли я смог вызывать d=dlg_proc(f, DLG_CTL_PROP_GET, index=2) и выводить d (dict).
надо искать по именам-- 'memo', 'input', не индексу.
бета в
http://uvviewsoft.com/c/
жди 10минут

Posted: 31.01.2021 17:30
by Shovel
uvviewsoft wrote:жди 10минут
Ух ты... у меня так буду нереалистичные стандарты к фича-реквестам :D

Posted: 31.01.2021 17:36
by uvviewsoft
о,а теперь можно переделать консоль--прятать 'input' и добавить свой ввод. и положения все можно менять. anchors.

Posted: 31.01.2021 17:49
by Shovel
Вы наверное пропустили, так как одновременно написали, повторюсь:
> Еще одна мелоч... если бы возможно еще было бы как-то получить 'locals()' из консоли, было бы отлично.

Posted: 31.01.2021 17:57
by uvviewsoft
есть вот
PROC_EXEC_PYTHON: Runs Python string in the context of Console. It is not the same as standard exec() call, it uses the same globals/locals as CudaText Console.
PROC_EXEC_PLUGIN: Runs Python plugin's method. Text must be comma-separated: "module_name,method_name,params", where "params" is optional part, it is parameter(s) for the method.

как вернуть локалс--не знаю...

Posted: 31.01.2021 18:22
by Shovel
Все работает, и 'on_key_down' и 'locals()' получил с PROC_EXEC_PYTHON. Спасибо :D
Завтра потестирую и выложу