Можно ли сделать Python Etags немного умнее с Emacs? - PullRequest
7 голосов
/ 03 июня 2010

Я работаю над проектом Django с emacs. В моем сценарии "postactivate" virtualenv у меня есть следующая простая команда:

find -L . -type f -name "*.py" | xargs etags -e > /dev/null 2>&1 &

Файл TAGS генерируется просто отлично, но система кажется довольно тупой. Когда курсор является вызовом фильтра модели, например,

MyModel.objects.filter(...)

и я нажимаю M-, иногда emacs занимает место, где MyModel импортируется во время файла (фактический оператор импорта). Я только хочу посетить определения классов, методов и функций.

Есть ли способ сделать etags умнее?

Спасибо, Райан Каскель

1 Ответ

3 голосов
/ 24 июня 2010

Получение правильного модульного анализа с использованием языка, такого как python, очень сложно, из-за его динамического характера лучший способ получить правильную информацию - это статический анализ или эвристика.

В настоящее время лучшее, что я нашел, - это изучение методов с расширением ropemacs, обладающим такими замечательными функциями, как помощь при кодировании (довольно умная) и подсказки.

К сожалению, не так-то просто сделать это правильно с Ropemacs, вы должны сначала установить pymacs, а затем настроить установку различных библиотек Rope. (Я работаю над упакованной версией )

Еще один пакет, который бы статически анализировал ваш код на Python и создавал "умные теги", был бы что-то вроде pysmell , но я не использовал его широко

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...