Quellcode-Beautifier für Lisp (Common Lisp, Scheme, Clojure) [geschlossen]

8

Gibt es Quellcode-Verschönerer für Lisp-Sprachen, besonders Clojure.

Ich weiß, dass es viele für Sprachen wie C / C ++ gibt (AStyle, Uncrustify, etc)

Ich kann nicht finden, irgendwelche für die Lisp Sprachen.

Mein Code ist ein Chaos viele lange Zeilen in dieser Sprache wie die folgenden

%Vor%

oder

%Vor%

was schrecklich ist

es wäre schön, einen Beautifier zu haben, der es so formatieren könnte

%Vor%     
zeitue 29.08.2012, 07:22
quelle

5 Antworten

8

Emacs kann das für Sie tun.

Sehen Sie dieses Dokument als guten Ausgangspunkt: Ссылка

    
Igor Chubin 29.08.2012, 08:08
quelle
5

Ihre Frage scheint alle in Klammern gesetzten Sprachen anzusprechen, also kann ich vielleicht Ihre Frage für Racket beantworten?

Die wirkliche Antwort hängt davon ab, ob Sie bereit sind, die Zeilenumbrüche selbst einzufügen. Viele Systeme kann die Zeilen für Sie auf idiomatische Weise einrücken, nachdem Sie sie in Zeilen aufgeteilt haben.

Wenn Sie nicht möchten, dass Sie sie manuell einfügen möchten, bietet Racket einen "hübschen Ausdruck", der etwas von dem macht, was Sie wollen:

%Vor%

== & gt;

%Vor%

... aber ich würde als Erster zugeben, dass das Einfügen von Zeilenumbrüchen an den richtigen Stellen schwierig ist, weil Die Wahl der Zeilenumbrüche hat viel damit zu tun, wie die Leute Ihren Code lesen sollen.

    
John Clements 29.08.2012 15:57
quelle
3

Ich benutze Clojure.pprint oft, um generierten Code für Menschen schmackhafter zu machen.  Es funktioniert gut für die Berichterstattung gedacht, es zielt darauf ab, Text zu produzieren. Die Formatierung, die in das Emacs-Paket clojure-mode eingebaut ist, erzeugt sehr schön formatiertes Clojure, wenn Sie die Zeilenumbrüche in sich selbst einfügen.

    
Arthur Ulfeldt 29.08.2012 08:08
quelle
2

La Clojure (IntelliJ Idea-Plugin für Clojure) verfügt über eine Codeformatierung.

    
eMko 07.09.2012 11:58
quelle
1

Jetzt können Sie es mit Srefactor-Paket machen.

Einige Demos:

Verfügbare Befehle:

  • srefactor-lisp-format-buffer : Formatiere den ganzen Puffer
  • srefactor-lisp-format-defun : Formatiere den aktuellen Defuncursor in
  • srefactor-lisp-format-sexp : Formatieren Sie den aktuellen Sexp-Cursor.
  • srefactor-lisp-one-line : Drehe das aktuelle sexp des gleichen Levels in eine Zeile; Mit Präfix-Argument rekursiv alle inneren Sexpops in eine Zeile umwandeln.

Scheme-Varianten sind noch nicht so poliert wie Emacs Lisp und Common Lisp, funktionieren aber für einfache und kleine Sexs. Wenn es irgendein Problem gibt, reichen Sie bitte einen Problembericht ein und ich werde es gerne beheben.

    
Amumu 08.04.2015 04:39
quelle