Quels sont les bons outils pour le développement de packages Emacs? [fermé]

17

Nous avons déjà une question sur les outils utiles spécifiquement pour les tests , mais qu'en est-il de l' écriture du code? Quels packages trouvez-vous accélérer votre développement? Quelles aides utilisez-vous pour naviguer rapidement et facilement et comprendre vos projets?

Sean Allred
la source
3
Cette question est très large et ouverte. La plupart des packages que vous avez répertoriés dans votre réponse peuvent s'appliquer à tout développement de code. De plus, cette réponse peut finir par contenir un sous-ensemble majeur des packages répertoriés dans le gestionnaire de packages. Si vous préférez multiple-cursors, quelqu'un d'autre pourrait préférer visual-regexpou ag / ack / grep depuis la ligne de commande ou depuis emacs ou emacs intégré query-replaceou query-replace-regexpou autre chose. Des arguments similaires peuvent être avancés pour chaque package. Au lieu de cela, une bonne question serait de savoir comment faire quelque chose de spécifique dans le "développement de paquets".
Kaushal Modi
@kaushalmodi C'est CW, donc c'était en partie mon intention d'être illimité. Poser des questions spécifiques pourrait être une meilleure façon de procéder, mais cette question existerait toujours comme un ensemble de ces questions. J'ai essayé de cibler la question spécifiquement sur les outils utiles au développement de lisps et emacs - multiple-cursors, par exemple, est utile partout, mais il existe peut-être d'autres packages qui respectent la portée explicite de lisp. Sûrement macrostepet ielmne sont applicables nulle part ailleurs. Apportez cela sur la méta, peut-être?
Sean Allred
@kaushalmodi: de bons points, mais n'est-ce pas pourquoi c'est maintenant un wiki communautaire? Vraisemblablement, nous pourrions modifier la réponse pour signaler les packages spécifiques à elisp et les packages de développement général.
Dan
C'est bien d'avoir un wiki communautaire mais je pense que cela peut facilement se transformer en "Quels sont vos packages préférés?" CW. Prenons un autre aspect générique dans votre réponse: Navigation .. Speedbar, projectile, outshine, orgstruct, g / c / etags, neotree, tabbar, ido, helm and helm plugins, ibuffer, etc
Kaushal Modi
@kaushalmodi ido, helm, ibuffer, tabbar-I ne pense-ne serait pas entrées appropriées. Rien ne facilite vraiment le développement elisp . Ce sont certainement des packages fantastiques, mais (d'après mon expérience), ils n'ont rien à ajouter au développement elisp . etags—Même si je ne le connais pas, on dirait que ce serait approprié. Peut-être qu'un autre CW est approprié pour ces autres packages (car ils méritent vraiment d'être mentionnés), mais je crains que vos craintes pour cette question ne se réalisent sûrement dans celui-ci.
Sean Allred du

Réponses:

21

Création

  • edebug: Débogage pas à pas du code Elisp.
  • checkdoc: Découvrez les erreurs de style dans vos commentaires et documents.
  • elint: Linter pour Emacs Lisp.
  • paredit: Manipulez le code lisp sous forme d'arbres au lieu de lignes. N'ayez jamais de parenthèses déséquilibrées.
  • lispy: alternative / sur-ensemble de type vi de paredit. Comprend également des raccourcis pour les contours, le rétrécissement, edebug, ediff, sémantique, mode ace-jump, curseurs multiples, cidre, slime et geiser.
  • multiple-cursors: Modifiez simultanément plusieurs expressions similaires. Entre autres choses, utile pour la refactorisation de code.
  • erefactor: Refactorisation de code.
  • redshank: Une autre bibliothèque de refactoring (conçue pour Common Lisp, mais fonctionne bien avec Emacs Lisp).
  • macrostep: Expansion de macro interactive dans la mémoire tampon.
  • yasnippet: Extraits de code pour une expansion rapide des idiomes répétitifs (exemples ici )

La navigation

  • speedbar: La barre de vitesse est un excellent moyen de naviguer dans votre projet. Il reconnaît les «balises» comme defuns et defvars (et similaires) et fournit des signets visibles comme contour.
  • outlined-elisp-mode: Une collection de paramètres pour le outlinemode mineur pour les tampons Elisp.
  • elisp-slime-nav: Saut instantané vers les définitions de fonction et de variable avec M-..

Profilage

  • elp: Frontend interactif pour Emacs Lisp Profiler, utile pour explorer ce qui est exactement lent dans votre fonction profilée et comment il interagit avec le reste d'Emacs.

La gestion

  • names: Fournit une macro pour créer des espaces de noms

Contrôle de version

  • Gitet son front-end Emacs Magit: sans doute le meilleur système de contrôle de version et un front-end Emacs très bien pensé pour lui.

Divers

  • ielm: REPL interactif
Sean Allred
la source
Veuillez étendre cette liste avec vos outils préférés si vous pensez qu'ils sont largement utiles.
Sean Allred
J'ai énuméré des ressources supplémentaires ici
clemera