Page 1 of 1

Перезапуск программы

Posted: 06.02.2018 09:26
by Alex842
Всем добрый день!

Во-первых, у меня наконец-то решилась проблема с жуткими тормозами при автодополнении кода в CudaText! :D Не знаю в чём было дело, но последняя версия программы работает на ура!

Теперь собственно вопрос. Какую команду нужно использовать, чтобы перезапустить программу? Аналог команде "переоткрыть" для вкладки-файла. Очень не удобно при тестировании плагина, когда приходится сначала закрыть программу, потом найти ярлык и заново её запустить. В Cudatext API я такой возможности не нашёл.

Posted: 06.02.2018 09:29
by Alexey
нет такой команды. Для теста плагинов я назначил F2 на команду "Reset python plugins", помогает она правда только для командных плагов (не event).

Posted: 06.02.2018 09:30
by Alexey
ПодЕлитесь плагином?

Posted: 06.02.2018 09:31
by Alex842
Пока только осваиваю питон. Если выйдет что-то путное, то конечно поделюсь.

Posted: 06.02.2018 11:46
by Alexey
Советую сайт "learn Python the hard way"

Posted: 06.02.2018 13:36
by kvichans
Alexey wrote:нет такой команды. Для теста плагинов я назначил F2 на команду "Reset python plugins", помогает она правда только для командных плагов (не event).
Уточнение. Эта команда позволяет начать использовать новую версию плагина, но только, если не менялся файл INF. Если менялся, то нужно перезапускать Куд.

Совет. Чтобы быстро вызывать Куд, я делаю так (в Windows)
- Вызываю системный диалог "Выполнить" (хоткей Win+R)
- Один раз нахожу cudatext.exe
- В следующий раз он уже стоит в диалоге

Posted: 09.02.2018 11:52
by kvichans
При работе с плагинами мне помогают два таких трюка

1.
Alexey wrote:нет такой команды. Для теста плагинов я назначил F2 на команду "Reset python plugins", помогает она правда только для командных плагов (не event).
Я немного дополнил действие этой команды. В моем личном плагине есть такой метод

Code: Select all

    def reset_plugins(self):
        file_save()
        app_log(LOG_CONSOLE_CLEAR, 'm')
        ed.cmd(cmd_ResetPythonPlugins)
Здесь перед вызовом "Reset python plugins" сохраняется текущий файл и очищается консоль.
В результате ее вызова у меня сразу появляется готовая среда с новой версией плага

2. Проверка питона на синтаксические ошибки.
Это тоже метод из личного плага

Code: Select all

    def execCurrentFileAsPlugin(self):
        fn  = ed.get_filename()
        if not fn.endswith('.py'):  return
        cmd = f('exec(open(r"{}", encoding="UTF-8").read())', fn)
        app_proc(PROC_EXEC_PYTHON, cmd)
Если синт.ошибки есть, то они сразу отобразятся в консоли.
Если нет, то появится одна ошибка при выполнении (поскольку этот запуск вне контекста)

Code: Select all

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 15, in <module>
ImportError: attempted relative import with no known parent package
Фактически ничего выполнятся не будет почти никогда.
(@Alexey Вот так я запускаю репро-примеры)

============
А кроме трюков я еще часто использую команду из cuda_ext
plugin: CudaExt: Navigate by error in console
Она ищет в консоли последнее упоминание текущего файла в стеке и переходит на указанную там строку.

Posted: 10.02.2018 18:55
by Alex842
Я в результате выкрутился так: поскольку я раньше частенько использовал для Total Commander утилиту TCIMG (http://tc-image.3dn.ru/forum/5-498-1), то и здесь решил ей воспользоваться. Сделал в папке Cudatext папку Utils и скопировал в неё папку с утилитой. С помощью плагина ExtTools запускаю утилиту с такими параметрами:

Code: Select all

resrt=cudatext.exe||1
Теперь при нажатии на этот пункт в меню программа перезагружается.
Alexey wrote:Советую сайт "learn Python the hard way"
Спасибо. Посмотрю.