Was sind gute Tools für die Entwicklung von Emacs-Paketen? [geschlossen]

17

Wir haben bereits eine Frage zu Tools, die speziell zum Testen nützlich sind , aber was ist mit dem eigentlichen Schreiben des Codes? Welche Pakete beschleunigen Ihre Entwicklung? Mit welchen Hilfsmitteln navigieren und verstehen Sie Ihre Projekte schnell und einfach?

Sean Allred
quelle
3
Diese Frage ist sehr weit gefasst und offen. Viele der Pakete, die Sie in Ihrer Antwort aufgeführt haben, können auf jede Codeentwicklung angewendet werden. Diese Antwort kann auch eine große Teilmenge der im Paket-Manager aufgelisteten Pakete enthalten. Wenn Sie es vorziehen multiple-cursors, jemand anderes könnte es vorziehen , visual-regexpoder ag / ack / grep von der Kommandozeile oder aus Emacs oder Emacs eingebaut query-replaceoder query-replace-regexpsonst etwas. Für jedes Paket können ähnliche Argumente vorgebracht werden. Stattdessen wäre eine gute Frage, wie man etwas Spezielles in der "Paketentwicklung" macht.
Kaushal Modi
@kaushalmodi Es ist CW, also war es teilweise meine Absicht, unbefristet zu sein. Das Stellen spezifischer Fragen könnte eine bessere Möglichkeit sein, dies zu tun, aber diese Frage würde immer noch als Sammlung dieser Fragen existieren. Ich habe versucht, die Frage speziell auf Tools zu richten, die bei der Entwicklung von LISPS und EMACS hilfreich sind multiple-cursors- zum Beispiel ist es überall nützlich, aber vielleicht gibt es auch andere Pakete, die das explizite Scoping von Lisp berücksichtigen. Sicher macrostepund nirgendwo sonst ielmanwendbar . Vielleicht über Meta sprechen?
Sean Allred
@kaushalmodi: Gute Punkte, aber ist das nicht der Grund, warum es jetzt ein Community-Wiki ist? Vermutlich könnten wir die Antwort bearbeiten, um elisp-spezifische und allgemeine Entwicklungspakete zu kennzeichnen.
Dan
Es ist in Ordnung, ein Community-Wiki zu haben, aber ich denke, das kann sich leicht in "Was sind deine Lieblingspakete?" Verwandeln. CW. Nehmen wir den anderen allgemeinen Aspekt in Ihre Antwort: Navigation .. Speedbar, Projektil, Outshine, Organstruct, g / c / etags, Neotree, Tabbar, Ido, Helm und Helm-Plugins, ibuffer, etc.
Kaushal Modi
@kaushalmodi ido, helm, ibuffer, tabbar-I glaube-nicht entsprechende Eingaben sein. Es gibt nichts, was die Entwicklung von elisp wirklich erleichtert. Es sind sicherlich fantastische Pakete, aber meiner Erfahrung nach haben sie nichts, was zur Entwicklung von elisp beitragen könnte . etags- während ich damit nicht vertraut bin, klingt es so, als wäre es angemessen. Vielleicht ist ein anderes CW für diese anderen Pakete geeignet (weil sie wirklich eine Erwähnung verdienen), aber ich befürchte, dass sich Ihre Befürchtungen für diese Frage in diesem Paket sicherlich verwirklichen würden.
Sean Allred

Antworten:

21

Authoring

  • edebug: Schrittweises Debuggen von Elisp-Code.
  • checkdoc: Weitere Informationen zu Stilfehlern finden Sie in Ihren Kommentaren und Dokumenten.
  • elint: Linter für Emacs Lisp.
  • paredit: Manipulieren Sie Lisp-Code als Bäume anstelle von Linien. Niemals unausgeglichene Klammern haben.
  • lispy: vi-like Alternative / Obermenge von paredit. Enthält außerdem Verknüpfungen für Gliederungen, Verengung, Fehler, Ediff, Semantik, As-Sprung-Modus, Mehrfachcursor, Apfelwein, Schleim und Geiser.
  • multiple-cursors: Mehrere ähnliche Ausdrücke gleichzeitig bearbeiten. Unter anderem nützlich für Code-Refactoring.
  • erefactor: Code Refactoring.
  • redshank: Eine weitere Refactoring-Bibliothek (für Common Lisp entwickelt, funktioniert aber gut mit Emacs Lisp).
  • macrostep: Interaktive In-Buffer-Makro-Erweiterung.
  • yasnippet: Codefragmente zur schnellen Erweiterung sich wiederholender Redewendungen (Beispiele hier )

Navigation

  • speedbar: Der Speedbar ist eine großartige Möglichkeit, um durch Ihr Projekt zu navigieren. Es erkennt "Tags" als defuns und defvars (und dergleichen) und stellt sichtbare Lesezeichen als Umriss bereit.
  • outlined-elisp-mode: Eine Sammlung von Einstellungen für den outlineNebenmodus für Elisp-Puffer.
  • elisp-slime-nav: Sofortsprung zu Funktions- und Variablendefinitionen mit M-..

Profiling

  • elp: Interaktives Frontend für den Emacs Lisp Profiler. Hier erfahren Sie, was genau in Ihrer Profilfunktion langsam ist und wie es mit dem Rest von Emacs interagiert.

Verwaltung

  • names: Stellt ein Makro zum Erstellen von Namespaces bereit

Versionskontrolle

  • Gitund sein Emacs-Frontend Magit: Das wohl beste Versionskontrollsystem und ein sehr durchdachtes Emacs-Frontend dafür.

Sonstiges

  • ielm: interaktive REPL
Sean Allred
quelle
Bitte erweitern Sie diese Liste mit Ihren bevorzugten Tools, wenn Sie der Meinung sind, dass sie allgemein hilfreich sind.
Sean Allred
Ich habe hier
Clemera