Diskussion Editor: Sortieren von Codeblöcken?

Mat

Aktives Mitglied
Kennt ihr ein Plugin für VSCode oder Neovim, mit dem man Codeblöcke alphabetisch sortieren kann, ohne dass die Inhalte der Blöcke kaputtgehen?

Zum Beispiel:

Code:
// Vorher
function b() {
  ...
}

function a() {
  ...
}

function c() {
  ...
}

// Nachher
function a() {
  ...
}

function b() {
  ...
}

function c() {
  ...
}

Also ich möchte einen Abschnitt im Code markieren und dann aufsteigend oder absteigend sortieren können. Am besten wäre es natürlich, wenn ich als Nutzer direkt einen regulären Ausdruck für den gesamten Block als Delimiter angeben kann. Die Reihenfolge soll alphabetisch ermittelt werden aus der ersten Zeile. Also wie im Beispiel wäre das hier "function a() {", "function b() {" usw.

Ich hab schon eine Idee, wie ich das als Plugin schreiben könnte. Für mich wäre es in VSCode leicht zu schreiben, umständlich einzubinden aber leicht zu benutzen. In Neovim wäre es umständlich zu schreiben (außer ich begnüge mich mit lua "regex"), leicht einzubinden und schwer zu benutzen.

Ich wollte aber unnötige arbeit vermeiden und hoffe, dass mein Anwendungsfall gar nicht so exotisch ist und ich nur zu blöd bin, die Plugins zu finden.
 
Also ich hab jetzt vorerst eine halbe VSCode-Lösung mit dem Plugin ScopedSort. Es richtet sich nach der Einrückung um Zusammenhang und Level festzustellen. Also eher für eingerückte Listen gedacht, aber lässt sich gut missbrauchen. Sind nur leider immer 2 Extra-Schritte.

  1. ich transformiere den Textabschnitt leicht mit regex suchen&ersetzen, um schließende Klammern aus einem Codeblock in die innere Einrückung zu "retten"
  2. dann sortiere ich mit ScopedSort
  3. dann stelle ich die Zeilenumbrüche wieder her oder lasse einen Autoformatter das tun
Code:
// Beispiel für Transformation

// 1. transformieren
function a() {
 return bla}
 
// 2. sortieren
// scopedSort mit "--reverse"

// 3. reparieren
function a() {
  return bla
}

Python müsste sich in der Hinsicht ja leichter sortieren lassen.
 
Zuletzt bearbeitet:
Zurück
Oben Unten