¿Cuáles son buenas herramientas para el desarrollo de paquetes de Emacs? [cerrado]

17

Ya tenemos una pregunta sobre las herramientas útiles específicamente para las pruebas , pero ¿qué hay de escribir el código? ¿Qué paquetes encuentras para acelerar tu desarrollo? ¿Qué ayudas utiliza para navegar y comprender sus proyectos de manera rápida y fácil?

Sean Allred
fuente
3
Esta pregunta es muy amplia y abierta. Muchos de los paquetes que enumeró en su respuesta pueden aplicarse a cualquier desarrollo de código. Además, esa respuesta puede terminar conteniendo un subconjunto principal de los paquetes enumerados en el administrador de paquetes. Si lo prefiere multiple-cursors, otra persona podría preferir visual-regexpo ag / ACK / grep desde la línea de comandos o desde dentro de emacs o emacs incorporado query-replaceo query-replace-regexpo alguna otra cosa. Se pueden hacer argumentos similares para cada paquete. En cambio, una buena pregunta sería preguntar cómo hacer algo específico en el "desarrollo de paquetes".
Kaushal Modi
@kaushalmodi Es CW, así que en parte era mi intención ser abierto. Hacer preguntas específicas podría ser una mejor manera de hacerlo, pero esta pregunta aún existiría como una colección de esas preguntas. Traté de dirigir la pregunta específicamente a las herramientas que son útiles con el desarrollo de lisps y emacs multiple-cursors; por ejemplo, es útil en todas partes, pero tal vez hay otros paquetes que respetan el alcance explícito de lisp. Seguramente macrostepy ielmno son aplicables en ningún otro lugar . Trae esto en meta, tal vez?
Sean Allred el
@kaushalmodi: buenos puntos, pero ¿no es por eso que ahora es una wiki comunitaria? Presumiblemente podríamos editar la respuesta para marcar paquetes específicos de elisp y generales de desarrollo.
Dan
Está bien tener un wiki comunitario, pero creo que esto puede transformarse fácilmente en "¿Cuáles son sus paquetes favoritos?" CW. Tomemos el otro aspecto genérico en su respuesta: Navegación .. Speedbar, proyectil, Outshine, orgstruct, G / C / etags, neotree, barra de pestañas, Ido, timón y del timón de plugins, ibuffer, etc
Kaushal Modi
@kaushalmodi ido, helm, ibuffer, tabbar-No creo-sería entradas apropiadas. No hay nada que realmente facilite el desarrollo de Elisp . Seguramente son paquetes fantásticos, pero (en mi experiencia) no tienen nada que agregar al desarrollo de elisp . etags—Aunque no estoy familiarizado con eso, parece que sería apropiado. Quizás otro CW sea apropiado para estos otros paquetes (porque realmente merecen mención), pero me temo que sus temores por esta pregunta seguramente se realizarán en ese.
Sean Allred el

Respuestas:

21

Autoría

  • edebug: Depuración paso a paso del código Elisp.
  • checkdoc: Aprenda sobre los errores de estilo en sus comentarios y documentos.
  • elint: Linter para Emacs Lisp.
  • paredit: Manipula el código lisp como árboles en lugar de líneas. Nunca tenga paréntesis desequilibrados.
  • lispy: alternativa / superconjunto vi de paredit. Además incluye accesos directos para contornos, estrechamiento, edebug, ediff, semántico, modo ace-jump, múltiples cursores, sidra, limo y geiser.
  • multiple-cursors: Edite simultáneamente múltiples expresiones similares. Entre otras cosas, útil para la refactorización de código.
  • erefactor: Código de refactorización.
  • redshank: Otra biblioteca de refactorización (diseñada para Common Lisp, pero funciona bien con Emacs Lisp).
  • macrostep: Expansión de macro interactiva en el búfer.
  • yasnippet: Fragmentos de código para una rápida expansión de modismos repetitivos (ejemplos aquí )

Navegación

  • speedbar: La barra de velocidad es una excelente manera de navegar a través de su proyecto. Reconoce 'etiquetas' como defunsy defvars (y similares) y proporciona marcadores visibles como un esquema.
  • outlined-elisp-mode: Una colección de configuraciones para el outlinemodo menor para los buffers de Elisp.
  • elisp-slime-nav: Salto instantáneo a funciones y definiciones variables con M-..

Perfilado

  • elp: Interfaz interactiva para Emacs Lisp Profiler, útil para explorar qué es exactamente lento en su función de perfil y cómo interactúa con el resto de Emacs.

administración

  • names: Proporciona una macro para crear espacios de nombres

Control de versiones

  • Gity su front-end Emacs Magit: posiblemente el mejor sistema de control de versiones y un front-end Emacs muy bien pensado para él.

Misceláneos

  • ielm: REPL interactivo
Sean Allred
fuente
Extienda esta lista con sus herramientas favoritas si cree que son de gran ayuda.
Sean Allred
He enumerado recursos adicionales aquí
clemera