Если вам нужно запустить какой-нибудь код « после запуска SpringApplication
», вы должны использовать ApplicationRunner
или CommandLineRunner
- они работают в таким же образом . 118]
ApplicationListener
или @EventListener
с ApplicationReadyEvent
делают то же самое.
См. Мой пример .
Вариант, который вы выберете, зависит от ваших предпочтений.
Я получаю завершение для своих собственных модулей в моем PYTHONPATH или пакетах сайта. Я не уверен, какую версию pythoncomplete.vim сценария Вы используете, но можно хотеть удостовериться, что это является последним.
Править: Вот некоторые примеры того, что я вижу в своей системе...
Этот файл (mymodule.py), я puth в каталоге в PYTHONPATH, и затем в пакетах сайта. Оба раза я смог получить снимок экрана ниже.
myvar = 'test'
def myfunction(foo='test'):
pass
class MyClass(object):
pass
После того как я генерировал ctags для одного из моих пакетов сайта, он начал работать на тот пакет - таким образом, я предполагаю, что функция omnicomplete зависит от ctags для non-sys модулей.
Править: Не верный вообще.
Вот проблема - плохое тестирование с моей стороны - omnicomplete работало на части моего проекта, просто не большая часть из нее.
Проблема была то, что я работаю над django проектом, и для импорта django.db, необходимо было установить переменную среды. Так как я не мог импортировать django.db, любой класс, который наследовался django.db или любому модулю, который импортировал класс, который наследовался django.db, не завершится.
Просто натыкался на это на Python reddit сегодня вечером: PySmell. Похож на то, что Вы ищете.
PySmell является Python помощник завершения IDE.
Это пытается статически проанализировать исходный код Python, не выполняя его, и генерирует информацию о структуре проекта, которую могут использовать инструменты IDE.
Я думаю Ваш после pydiction сценария. Это позволяет Вам добавить свой собственный материал и пакеты сайта к завершенному omni.
В то время как Ваш в нем, добавляют следующие к Вашему python.vim файлу...
set iskeyword+=.
Это позволит Вам автоматически заполнить функции пакета, например, если Вы входите...
os.path.
и затем [CTRL] [N], Вы получите список функций для os.path.
Хотя важно отметить, что вы должны правильно установить переменную среды PYTHONPATH
в соответствии с предыдущий ответ, в Vim есть заметная ошибка , которая препятствует работе полного завершения при сбое импорта . В Vim 7.2.79 эта ошибка не исправлена.
Совет по устранению неполадок: убедитесь, что модуль, который вы пытаетесь комплексно завершить, может быть импортирован с помощью VIM. У меня был синтаксически правильный Python, который не нравился VIM:
:python import {module-name}
Traceback (most recent call last):
File "<string>", line 1, in ?
File "modulename/__init__.py", line 9
class empty_paranthesis():
^
SyntaxError: invalid syntax
Пример, удаление скобок из определения моего класса позволило VIM импортировать модуль, и впоследствии OmniComplete в этом модуле начал работать.