Wyświetl kod z innym wcięciem niż zapisany na dysku

13

Pracuję nad niektórymi projektami ze stylami wcięć, które uważam za naprawdę irytujące. Chciałbym wyświetlić kod z pewnym stylem wcięcia, ale zawsze zapisz na dysku w zalecanym stylu wcięcia.

W szczególności podoba mi się domyślny styl wcięcia emacsa w argumentach funkcji wieloliniowych ...

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

Ale projekt jest tylko tabulator, jedno wcięcie na wszystko ...

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

Czy mogę zobaczyć pierwszy przypadek, ale udostępnić drugi?

Spacemoose
źródło
Co z: wyłącz tryb automatycznego przywracania, a następnie uruchom polecenie (np. astyle), Które formatuje plik do stylu Twojego zespołu wafter-save-hook
niania
czy zastanawiałeś się nad hakiem formatowania kontroli wersji, np. hakiem pre-commit git?
erjoalgo,

Odpowiedzi:

1

Oczywistym podejściem byłoby to

  • wcięcie kopii bufora za pomocą c-mode; i wtedy
  • umieść wcięcie kopii jako właściwości wyświetlania w przestrzeni wcięcia w oryginalnym buforze.

Uwaga 1: Zaimplementowanie tego przy jednoczesnym zachowaniu możliwości edycji bufora może być koszmarem, więc uczynię bufor tylko do odczytu.
Uwaga 2: Właściwości tekstu są znacznie szybsze niż nakładki, więc użyłbym ich. Chyba że w nieparzystym przypadku, gdy wcięcie bufora oryginalnego wynosi 0, a c-modenie jest.

politza
źródło
Można to zrobić za pomocą właściwości tekstu, dodając dodatkowe słowa kluczowe blokujące czcionki. Bardziej martwię się o to, jak zamiast tego wyświetlić wcięcie.
wasamasa,