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?


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.