Какие хорошие инструменты для разработки пакетов Emacs? [закрыто]

17

У нас уже есть вопрос об инструментах, полезных специально для тестирования , но как насчет написания кода? Какие пакеты, по вашему мнению, ускоряют вашу разработку? Какие средства вы используете для быстрой и удобной навигации и понимания ваших проектов?

Шон Оллред
источник
3
Этот вопрос очень широкий и открытый. Многие из пакетов, которые вы перечислили в своем ответе, могут применяться к любой разработке кода. Также этот ответ может содержать основное подмножество пакетов, перечисленных в менеджере пакетов. Если вы предпочитаете multiple-cursors, кто - то может предпочесть visual-regexpили фг / извед / Grep из командной строки или из Emacs или Emacs встроенные query-replaceили query-replace-regexpили что - то другое. Аналогичные аргументы могут быть сделаны для каждого пакета. Вместо этого хорошим вопросом будет вопрос о том, как сделать что-то конкретное в «разработке пакетов».
Каушал Моди
@kaushalmodi Это CW, поэтому отчасти я хотел быть открытым. Задание конкретных вопросов может быть лучшим способом решения этой проблемы, но этот вопрос все еще будет существовать как набор этих вопросов. Я попытался нацелить вопрос конкретно на инструменты, которые полезны при разработке lisps и emacs multiple-cursors- например, полезны повсюду, но, возможно, есть другие пакеты, которые поддерживают явную область видимости lisp. Конечно, macrostepи ielmне применимы нигде . Может быть, поднять это на мета?
Шон Оллред
@kaushalmodi: хорошие моменты, но не потому ли это теперь вики сообщества? Предположительно мы можем отредактировать ответ, чтобы пометить пакеты elisp-specific и development-general.
Дан
Это нормально иметь вики сообщества, но я думаю, что это может легко превратиться в "Какие ваши любимые пакеты?" CW. Давайте возьмем еще один общий аспект в вашем ответе: навигация. Speedbar, снаряд, затмение, orgstruct, g / c / etags, neotree, tabbar, ido, плагины руля и штурвала, ibuffer и т. Д.
Kaushal Modi
@kaushalmodi ido, helm, ibuffer, tabbar-Я не думаю , что -бы соответствующие записи. Нет ничего, что действительно облегчает разработку elisp . Это, безусловно, фантастические пакеты, но (по моему опыту) им нечего добавить к разработке elisp . etags- хотя я не знаком с этим, звучит так, как будто это было бы уместно. Возможно, другой CW подходит для этих других пакетов (потому что они действительно заслуживают упоминания), но я боюсь, что ваши опасения по этому вопросу наверняка будут реализованы в этом.
Шон Оллред

Ответы:

21

авторинг

  • 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 - отличный способ навигации по вашему проекту. Он распознает «теги» как defuns и defvars (и тому подобное) и предоставляет видимые закладки в виде контура.
  • outlined-elisp-mode: Набор настроек для outlineвторостепенного режима для буферов Elisp.
  • elisp-slime-nav: Мгновенный переход к определениям функций и переменных с помощью M-..

Профилирование

  • elp: Интерактивный интерфейс для Emacs Lisp Profiler, полезный для изучения того, что именно медленно работает в вашей профилированной функции и как она взаимодействует с остальной частью Emacs.

управление

  • names: Предоставляет макрос для создания пространств имен

Контроль версий

  • Gitи его интерфейс Emacs Magit: возможно, лучшая система управления версиями и очень продуманный интерфейс Emacs для нее.

Разное

  • ielm: интерактивный REPL
Шон Оллред
источник
Пожалуйста, добавьте в этот список ваши любимые инструменты, если вы считаете, что они очень полезны.
Шон Оллред
Я перечислил дополнительные ресурсы здесь
Clemera