Заставить emacs автоматически завершать методы Ruby - PullRequest
4 голосов
/ 17 апреля 2010

Есть ли способ заставить emacs выполнять автоматическое завершение методов ruby, как это делают Eclipse и NetBeans? Это если я наберу File. и нажмите CTRL-пробел в Eclipse, я получу список методов File. То же самое с переменными. Я установил плагин автозаполнения, ruby-mode, rinari и cedet, но пока он будет завершать локальные переменные и имена методов, но не будет собственных.

Ответы [ 3 ]

8 голосов
/ 17 апреля 2010

Я думаю, вам нужно что-то вроде RSense . Вам также может понравиться более общий режим автозаполнения .

2 голосов
/ 17 апреля 2010

Я не знаком с ruby, но если под "нативными методами" вы подразумеваете вещи в какой-то системной библиотеке, есть несколько вариантов расширения CEDET для выполнения работы.

Если где-то есть файлы ruby, в которых есть весь этот код, и если ruby ​​поддерживает какой-то оператор «include» или «import», то вам нужно добавить это местоположение в путь включения для ruby. Это, вероятно, требует изменения исходного кода ruby, чтобы добавить новый системный путь включения. Вы можете увидеть примеры в semantic-c.el. Вам также может понадобиться переопределить функцию semantic-tag-include-filename, чтобы преобразовать включение в доступное для поиска имя файла.

Если нет включений, и есть только какой-то интерпретатор ruby, который знает все эти вещи, тогда вам вместо этого нужно будет написать полную «всеведущую» базу данных ruby, аналогичную semanticdb-el.el. Для этого потребуется способ запросить ruby ​​для различных вещей и вернуть их в качестве ответов.

Любые подобные усовершенствования приветствуются в рубиновой поддержке в зоне CEDET.

0 голосов
/ 17 апреля 2010

Ruby является интерпретируемым языком, затрудняющим выполнение определенных действий, таких как автозаполнение. Как бы вы узнали, что это за тип объекта, если он не определен? Поэтому готовые решения ограничены или отсутствуют. Даже автозаполнение в Netbean / Eclipse будет работать только на методах класса (если я не ошибаюсь).

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