Я работаю над своим проектом Django с emacs. В моем virtualenv "постактивируют" сценарий, у меня есть следующая простая команда:
find -L . -type f -name "*.py" | xargs etags -e > /dev/null 2>&1 &
Файл ТЕГОВ генерирует очень хорошо, но система кажется довольно немой. Когда курсор является образцовым вызовом фильтра, например.
MyModel.objects.filter(...)
и я поразил M-., иногда emacs берет меня место, куда MyModel импортируется во время файла (фактический оператор импорта). Я только когда-либо хочу посетить класс, метод и функциональные определения.
Существует ли способ сделать завершающие теги более умными?
Спасибо, Ryan Kaskel
Выполнить правильный анализ модуля с помощью такого языка, как python, очень сложно, из-за его динамической природы лучший способ получить правильную информацию - это статический анализ или эвристика.
На данный момент лучшее, что я нашел, - это изучение методов с помощью расширения ropemacs, которое имеет замечательные функции, такие как помощь с кодом (довольно умная) и подсказки.
К сожалению, сделать это правильно с помощью ropemacs непросто, вы должны сначала установить pymacs, а затем настроить установку различных библиотек веревок. (Я работаю над упакованной версией )
Другой пакет, который будет статически анализировать ваш код Python и создавать «более умные теги», будет чем-то вроде pysmell , но я не использовал его широко