Verwenden Sie hübscher, um JavaScript -Codeblöcke in einer Trichterweb -Datei zu formatieren
Posted: 23 Feb 2025, 14:31
Ich habe eine Trichterweb -Datei, deren @{... @} Codeblöcke in ein JavaScript -Programm verwickelt sind. Ich möchte hübscher verwenden, um diese Codeblöcke zu formatieren, während ich die Non-Code-Trichterquelle unverändert bleibt. BR /> Ich verwende ein Node.js -Programm, das die Dateizeile für Zeile verarbeitet. Wenn es sich nicht im Status "Codeblock" befindet, kopiert es einfach jede Zeile in die Ausgabe. Aber: < /p>
Ein Codeblock kann @ < /code> auf andere Codeblöcke enthalten < /li>
< LI> Ein Codeblock enthält oft eine Methode einer Klasse und sieht aus wie In der Kommentarsyntax wie /*@*/ bevor schöner Formatierung /> Konvertiten Eine uneinheitliche Methode (args) { in die Funktion/*m*/methode (args) { bevor schöner Formatierung Methode (args) { in die Funktion/*s*/methode (args) { vor hübscher Formatierung und konvertiert sie zurück danach.
Wieder meine Frage: Hat jemand dies versucht und einen besseren Ansatz gefunden?
- Wenn eine Zeile mit einer Code -Block -Definition@$@@{< /code> beginnt, gibt sie diese Zeile aus. Erstellt einen neuen "Codepuffer" und wechselt in den Status "Code Block". /> Wenn eine Zeile mit beginnt @} verlässt den Status "Code Block", verarbeitet den Codepuffer mit schöneren und gibt die resultierenden Zeilen aus, gefolgt von der aktuellen Zeile.
Ein Codeblock kann @ < /code> auf andere Codeblöcke enthalten < /li>
< LI> Ein Codeblock enthält oft eine Methode einer Klasse und sieht aus wie
Code: Select all
method(args) {...}
< /code>
und schöner lehnt dies in Abwesenheit der Umgebung abclass ClassName {...}
< /code>
< /li>
< /ul>
Um diese beiden Probleme zu umgehen, mein Knoten.js Programm < /p>
< Br/> Wraps@
Code: Select all
code = code
.replaceAll("function /*s*/", "static")
.replaceAll("function /*m*/ ", "")
.replace(/\/\*|\*\//g, "");
< /code>
Und wenn ein Codeblock immer noch nicht von schöneren formatiert werden kann, wird der nicht formatierte Code ausgegeben. formatiert sind Einzeiler wie < /p>
@$@+=@{
ClassName,
@}