14 Stimmen

Intelligente automatische Einrückung in Geany verfügbar?

Ich schreibe JavaScript mit Geany-IDE. Meine Einrückung ist durcheinander und ich möchte, dass es ordentlich aussieht. Wenn ich in Eclipse Java schreibe, kann ich Strg + i drücken, um alle Abstände in Ordnung zu bringen.

Welche Einrückungsoption gibt es in Geany?

7voto

Tobiasz Punkte 1059

Die Option zur Dokumentformatierung steht auf der Wunschliste des Geany-Plugins (siehe Abschnitt Auto Correct Indentation in Geanys Plugin Wishlist).

Allerdings ermöglicht Geany es, Text mithilfe benutzerdefinierter Befehle zu senden.

Wie Sie vermuten können, öffnet dies eine ziemlich große Auswahl an neuen "Türen", hinter denen die Lösung Ihres Problems liegt, z.B. Artistic Style ist ein plattformübergreifendes Code-Auto-Formatierungstool für C, C++, C# und Java. Die Lösung lautet also:

  • holen Sie sich eine Kopie eines beliebigen Code-Formatierungstools, das Text von der Standardeingabe akzeptiert und den resultierenden Text an die Standardausgabe zurückgibt,
  • in Geany gehen Sie zu Auswahl senden->Benutzerdefinierte Befehle festlegen und fügen einen geeigneten Befehl für Ihr Tool hinzu

Ich bin kein Verteidiger von Artistic Style, Sie können einfach ein beliebiges Tool verwenden, das Java-Code formatiert. Es wurde auf diese Weise mit HTML Tidy oder PHP Beautifier gemacht, die Ergebnisse sehen so aus:

Bildbeschreibung hier eingeben

4voto

Francky Punkte 41

Befehl für HTML einfache intelligente Einrückung die endlich in Geany funktioniert:

bash -c "tidy --indent auto --indent-spaces 2 --char-encoding utf8 --quiet yes 2>/dev/null; true"

1voto

user3796218 Punkte 11

PHPFormatter ist ein PHP-Skript, das hier gefunden werden kann -- https://github.com/NathanWong/phpformatter Es kann über die Befehlszeile ausgeführt werden und leistet hervorragende Arbeit beim Formatieren von PHP, HTML und Javascript. Aus der Beschreibung des Autors:

"Dieses PHP-Skript formatiert ein anderes PHP-Skript nach meinen willkürlich festgelegten Formatierungsregeln (echte Tabs, 97 Zeichen pro Zeile, Klammern in einer eigenen Zeile, Einrückung basierend auf der Operatorhierarchie nicht auf der Ausrichtung, Leerzeichen um die meisten Operatoren herum, aber nicht um Kommas oder Klammern, Leerzeichen nach if, usw.). Es formatiert auch Inline-HTML, und wenn JS Beautify verfügbar ist, wird es das auch für Inline-Javascript in Inline-HTML verwenden."

Ich habe einfach die 2 Dateien: format.php und jsbeautify.php in mein Home-Verzeichnis entzippt und dann den folgenden benutzerdefinierten Befehl in Geany hinzugefügt:

php /home/myusername/format.php -

(Beachten Sie den Bindestrich am Ende. Dieser sagt dem Skript, dass es Eingaben vom Standard-Eingabestrom akzeptieren soll, wohin Geany den Text sendet.) Jetzt müssen Sie nur noch ein schnelles Strg+A (Alles auswählen) und dann Strg+1 (oder die Nummer, auf die Sie den Befehl gelegt haben) und ...

Voilà...

Schön formatierter Code!! Danke Nathan!

1voto

MIRMIX Punkte 1022

Basierend auf der Geany-Dokumentation sind die Typen der Auto-Einzug wie folgt:

Geany kennt vier Arten von Auto-Einzug:

Keiner: Deaktiviert die Auto-Einzug komplett.

Grundlegend: Fügt auf einer neuen Zeile die gleiche Menge an Leerzeichen hinzu wie auf der letzten Zeile.

Aktuelle Zeichen: Führt das Gleiche wie Grundlegend aus, rückt jedoch auch eine neue Zeile nach einer öffnenden Klammer '{' ein und rückt wieder zurück, wenn eine schließende Klammer '}' getippt wird. Bei Python wird eine neue Zeile eingerückt, nachdem ':' am Ende der vorherigen Zeile eingegeben wurde.

Klammern abgleichen: Ähnlich wie Aktuelle Zeichen, aber die schließende Klammer wird ausgerichtet, um mit der Einrückung der Zeile mit der öffnenden Klammer übereinzustimmen.

Sie haben gerade folgende Optionen. Sie können diese Optionen mit Scintilla verbessern und erweitern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X