Visualizza il codice con rientro diverso da quello salvato sul disco


13

Lavoro su alcuni progetti con stili di rientro che trovo davvero irritanti. Vorrei visualizzare il codice con un determinato stile di rientro, ma salvare sempre su disco con lo stile di rientro prescritto.

In particolare, mi piace lo stile di rientro predefinito di emacs su argomenti di funzioni multilinea ...

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

Ma il progetto è solo tab, singolo rientro su tutto ...

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

Posso vedere il primo caso, ma condividere il secondo?


Che dire: disabilita la modalità di ripristino automatico, quindi esegui un comando (ad es. astyle) Che formatta il file in base allo stile della tua squadra nella tuaafter-save-hook
bambinaia,

hai preso in considerazione un hook di formattazione a livello di controllo versione, ad esempio hook di pre-commit git?
Erjoalgo,

Risposte:


1

Un approccio ovvio a questo sarebbe

  • indentare una copia del buffer usando c-mode; e poi
  • inserisce il rientro della copia come proprietà di visualizzazione nello spazio di rientro nel buffer originale.

Nota 1: implementare questo mantenendo la possibilità di modificare il buffer potrebbe essere un incubo, quindi renderei il buffer di sola lettura.
Nota 2: le proprietà del testo sono molto più veloci delle sovrapposizioni, quindi le userei. A meno che nel caso dispari in cui il rientro del buffer originale sia 0 e c-mode'non lo è.


Questo può essere fatto con le proprietà del testo aggiungendo parole chiave aggiuntive per bloccare i caratteri. Sono più preoccupato di capire come dovrebbe essere visualizzato il rientro.
wasamasa,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.