Zeigen Sie Code mit einem anderen Einzug an als auf der Festplatte gespeichert

13

Ich arbeite an einigen Projekten mit Einrückungsstilen, die mich wirklich irritieren. Ich möchte den Code mit einem bestimmten Einrückungsstil anzeigen, aber immer mit dem vorgeschriebenen Einrückungsstil auf der Festplatte speichern.

Insbesondere mag ich Emacs Standard-Einrückungsstil auf mehrzeiligen Funktionsargumenten ...

void foo(int a, int b,
         string c)

Aber das Projekt ist nur ein Tabulator, ein einziger Einzug für alles ...

void foo(int a, int b,
    string c)

Kann ich sehen , den ersten Fall, aber die zweite teilen?

Spacemoose
quelle
Was ist mit: Deaktivieren Sie den automatischen Wiederherstellungsmodus und führen Sie dann einen Befehl aus (z. B. astyle), der die Datei gemäß dem Stil Ihres Teams in Ihrerafter-save-hook
Kindermädchen
Haben Sie einen Formatierungs-Hook für die Versionskontrolle in Betracht gezogen, z. B. einen Git-Pre-Commit-Hook?
Erjoalgo

Antworten:

1

Ein naheliegender Ansatz wäre,

  • Kopie des Puffers mit einrücken c-mode; und dann
  • Platzieren Sie den Einzug der Kopie als Anzeigeeigenschaften im Einzugsbereich des ursprünglichen Puffers.

Hinweis 1: Die Implementierung dieser Funktion bei gleichzeitiger Bearbeitung des Puffers kann ein Albtraum sein. Daher ist der Puffer schreibgeschützt.
Hinweis 2: Texteigenschaften sind viel schneller als Überlagerungen. Daher würde ich sie verwenden. Es sei denn, in dem ungeraden Fall ist der Einzug des ursprünglichen Puffers 0 und der des Puffers c-modenicht.

Politza
quelle
Dies kann mit Texteigenschaften erfolgen, indem zusätzliche Schlüsselwörter zum Sperren von Schriftarten hinzugefügt werden. Ich mache mir eher Gedanken darüber, wie der Einzug angezeigt werden soll.
Wasamasa