Найти - Пользователи
Полная версия: Emacs + rope + yasnippet + auto-complete
Начало » Инструментальные средства разработки » Emacs + rope + yasnippet + auto-complete
1 2 3 4 5 6
Ed
Кто юзает такую связку, помогите, плз!

Настроил вышеуказанное как описано здесь: http://hide1713.wordpress.com/2009/01/30/setup-perfect-python-environment-in-emacs/
Не работает пункт 2: Complete names in other files or python libraries.
Набираю скажем os. и жму TAB - пишет в статус строке sole completion или вообще молчит.

Если у кого-то это работает, можно ли взглянуть на ваш .emacs?
balu
Не будет дела с автокомплишеном - не определен rope-completions, требуемый в скрипте. rope-completions был в какой-то девелоперской ветке, потом его убрали. Но работает простой комплешин от rope
Ed
Насколько хорошо он работает? Что он охватывает? Сигнатуры функций, имена классов/функций/модулей из PYTHONPATH есть?
balu
Автодополнение хорошее по тому, что определено в import, но без сигнатуры, которе надо смотреть в rope-show-calltip или rope-show-doc, которые тоже вполне неплохо работают.
ZioN
Ed
Кто юзает такую связку, помогите, плз!
Если у кого-то это работает, можно ли взглянуть на ваш .emacs?
Пользуемся :) Обнови auto-complete (http://www.cx4a.org/pub/), и yasnippet (http://code.google.com/p/yasnippet/downloads/list) до последней версии. Ну и приблизительно так:
(require 'pymacs)
(require 'python-mode)
(require 'yasnippet-bundle)
(require 'auto-complete)
(require 'auto-complete-yasnippet)
(require 'auto-complete-python)
(pymacs-load "ropemacs" "rope-")
(setq ropemacs-enable-autoimport t)
дальше все как указано в примере, кроме этой строчки:

(append ac-sources ‘(ac-source-rope) ’(ac-source-yasnippet)))

заменить на:

(append ac-sources '(ac-source-rope)))

balu
Не будет дела с автокомплишеном - не определен rope-completions, требуемый в скрипте. rope-completions был в какой-то девелоперской ветке, потом его убрали. Но работает простой комплешин от rope
Да есть вроде, обновите ropemode

http://bitbucket.org/agr/ropemode/src/tip/ropemode/interface.py#cl-236

@decorators.local_command()
def completions(self):
return _CodeAssist(self, self.env).completions()
Ed
Ухты! Спасибо большое! Вечером попробую. 
Если чего - буду спрашивать.
Ed
Стало лучше, но до идеала далеко.
Больше всего не нравится то, что после точки он не автокомплитит, если не нажать первую букву.
Например, набираю
import os
os.<TAB> - ничего не происходит. А если os.p<TAB>, то тогда уже показывает все, что находит на букву P. Причем там и path и Processing и локальные переменные, начинающиеся на p. Фигня какая-то.

Этот конкретный случай лучше всего отрабатывает ipython. Он все корректно показывает, в отличие от. Эх, жаль, я лиспа не знаю.
balu
ZioN
Да есть вроде, обновите ropemode
ДА, у меня старый был, хотя указанный метод там был, но он не работал.
ZioN
дальше все как указано в примере, кроме этой строчки:
(append ac-sources ‘(ac-source-rope) ’(ac-source-yasnippet)))
заменить на:
(append ac-sources '(ac-source-rope)))
И я бы еще заменил
(define-key py-mode-map (kbd "\t") 'ryan-python-tab)
на что-то типа
(add-hook 'python-mode-hook
(lambda ()
(define-key py-mode-map (kbd "\e\ek") 'ryan-python-tab))
ZioN
Ed
Стало лучше, но до идеала далеко.
Больше всего не нравится то, что после точки он не автокомплитит, если не нажать первую букву.
Например, набираю
import os
os.<TAB> - ничего не происходит. А если os.p<TAB>, то тогда уже показывает все, что находит на букву P.
У меня работает.


Ed
Причем там и path и Processing и локальные переменные, начинающиеся на p. Фигня какая-то.
Имхо вполне удобно, автокомплит, лично для меня, это борьба со склерозом :) (бывало такое, что через 3 сек. забывал как обозвал переменную, пока переключался на другой буффер :) ) Тебе наверно лучше пользоваться просто автокомплитом rope (rope-code-assist) и сверху yasnippet.
Ed
ZioN
У меня работает.
И что показывает?


ZioN
Имхо вполне удобно, автокомплит, лично для меня, это борьба со склерозом :)
Это от какого склероза помогает автокомплит, который после os.p<TAB> показывает локальные имена, начинающиеся на p :)?
Если я уже вспомнил os.p, то явно все остальное меня вряд ли заинтересует в данном контексте.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB