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

Post Reply
Alex842
Posts: 40
Joined: 25.10.2015 09:43

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

Post by Alex842 »

Всем добрый день!

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

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

Post by Alexey »

нет такой команды. Для теста плагинов я назначил F2 на команду "Reset python plugins", помогает она правда только для командных плагов (не event).
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

ПодЕлитесь плагином?
Alex842
Posts: 40
Joined: 25.10.2015 09:43

Post by Alex842 »

Пока только осваиваю питон. Если выйдет что-то путное, то конечно поделюсь.
Alexey
Posts: 1633
Joined: 05.10.2012 22:10

Post by Alexey »

Советую сайт "learn Python the hard way"
User avatar
kvichans
Posts: 203
Joined: 07.10.2012 05:45

Post by kvichans »

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

Совет. Чтобы быстро вызывать Куд, я делаю так (в Windows)
- Вызываю системный диалог "Выполнить" (хоткей Win+R)
- Один раз нахожу cudatext.exe
- В следующий раз он уже стоит в диалоге
CudaText 1.163, TC9.51x32, Win10x64(1920x1080)
User avatar
kvichans
Posts: 203
Joined: 07.10.2012 05:45

Post 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
Она ищет в консоли последнее упоминание текущего файла в стеке и переходит на указанную там строку.
CudaText 1.163, TC9.51x32, Win10x64(1920x1080)
Alex842
Posts: 40
Joined: 25.10.2015 09:43

Post 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"
Спасибо. Посмотрю.
Post Reply