Каковы некоторые полезные функции emacs для рефакторинга? - PullRequest
4 голосов
/ 10 сентября 2010

Пока я придерживаюсь multi-occur-in-matching-buffers и rgrep, что, хотя и мощно, все еще довольно просто, я полагаю.

Несмотря на то, что я понимаю что-то более сложное, чем сопоставление регулярного выражения и переименование, потребуетсячтобы интегрироваться с CEDET's semantic bovinator, я чувствую, что здесь еще есть возможности для улучшения.

Встроенные функции, пакеты или пользовательский код, что вам может пригодиться при выполнении работы?

Приветствия

Ответы [ 3 ]

3 голосов
/ 14 сентября 2010

В CEDET есть инструмент для обозначения символов.По умолчанию он также использует find / grep в проекте, чтобы найти вхождение символа.Вместо этого лучше использовать GNU Global, IDUtils или CScope, чтобы создать базу данных в вашем проекте.Затем вы можете использовать semantic-symref-symbol, который затем будет использовать gnu global или что угодно, чтобы найти все ссылки.

Оказавшись в буфере списка symref, вы можете просмотреть попадания.Затем вы можете выбирать различные попадания и выполнять такие операции, как переименование символов или более мощный макрос выполнения для всех попаданий.

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

1 голос
/ 10 сентября 2010

Это зависит от того, какой язык вы используете; если ваш язык поддерживается slime , существует семейство команд кто: slime-кто-звонит, кто-ссылки, кто-связывает, звонит-кто и т. д. Они предоставляют реальную семантическую информацию, поэтому они более надежны, чем регулярные выражения.

0 голосов
/ 15 сентября 2010

Если вы редактируете lisp, я считаю полезным (в целом) использовать пакет paredit.el.Перейдите по ссылке для документации, и видео является отличным введением.

...