У нас уже есть вопрос об инструментах, полезных специально для тестирования , но как насчет написания кода? Какие пакеты, по вашему мнению, ускоряют вашу разработку? Какие средства вы используете для быстрой и удобной навигации и понимания ваших проектов?
elisp
interactive-development
package-development
Шон Оллред
источник
источник
multiple-cursors
, кто - то может предпочестьvisual-regexp
или фг / извед / Grep из командной строки или из Emacs или Emacs встроенныеquery-replace
илиquery-replace-regexp
или что - то другое. Аналогичные аргументы могут быть сделаны для каждого пакета. Вместо этого хорошим вопросом будет вопрос о том, как сделать что-то конкретное в «разработке пакетов».multiple-cursors
- например, полезны повсюду, но, возможно, есть другие пакеты, которые поддерживают явную область видимости lisp. Конечно,macrostep
иielm
не применимы нигде . Может быть, поднять это на мета?ido
,helm
,ibuffer
,tabbar
-Я не думаю , что -бы соответствующие записи. Нет ничего, что действительно облегчает разработку elisp . Это, безусловно, фантастические пакеты, но (по моему опыту) им нечего добавить к разработке elisp .etags
- хотя я не знаком с этим, звучит так, как будто это было бы уместно. Возможно, другой CW подходит для этих других пакетов (потому что они действительно заслуживают упоминания), но я боюсь, что ваши опасения по этому вопросу наверняка будут реализованы в этом.Ответы:
авторинг
edebug
: Пошаговая отладка кода Elisp.checkdoc
: Узнайте об ошибках стиля в ваших комментариях и документах.elint
: Линтер для Emacs Lisp.paredit
: Манипулировать кодом lisp в виде деревьев вместо строк. Никогда не используйте несбалансированные скобки.lispy
: vi-подобная альтернатива / надмножествоparedit
. Дополнительно включает в себя сочетания клавиш для контуров, сужения, edebug, ediff, семантики, режима туза-прыжка, нескольких курсоров, сидра, слизи и гейзера.multiple-cursors
: Одновременно редактировать несколько похожих выражений. Среди других вещей, полезных для рефакторинга кода.erefactor
: Рефакторинг кода.redshank
: Еще одна библиотека рефакторинга (разработана для Common Lisp, но хорошо работает с Emacs Lisp).macrostep
: Интерактивное расширение макроса в буфере.yasnippet
: Фрагменты кода для быстрого расширения повторяющихся идиом (примеры здесь )навигация
speedbar
: Speedbar - отличный способ навигации по вашему проекту. Он распознает «теги» какdefun
s иdefvar
s (и тому подобное) и предоставляет видимые закладки в виде контура.outlined-elisp-mode
: Набор настроек дляoutline
второстепенного режима для буферов Elisp.elisp-slime-nav
: Мгновенный переход к определениям функций и переменных с помощьюM-.
.Профилирование
elp
: Интерактивный интерфейс для Emacs Lisp Profiler, полезный для изучения того, что именно медленно работает в вашей профилированной функции и как она взаимодействует с остальной частью Emacs.управление
names
: Предоставляет макрос для создания пространств именКонтроль версий
Git
и его интерфейс EmacsMagit
: возможно, лучшая система управления версиями и очень продуманный интерфейс Emacs для нее.Разное
ielm
: интерактивный REPLисточник