Lihat kode dengan lekukan berbeda dari yang disimpan ke disk

13

Saya mengerjakan beberapa proyek dengan gaya lekukan yang menurut saya sangat menjengkelkan. Saya ingin melihat kode dengan gaya indentasi tertentu, tetapi selalu menyimpan ke disk dengan gaya indentasi yang ditentukan.

Secara khusus, saya suka gaya lekukan default emacs pada argumen fungsi multi-line ...

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

Tapi proyek ini hanya tab, indentasi tunggal pada segalanya ...

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

Bisakah saya melihat kasing pertama, tetapi membagikan kasing kedua?

Spacemoose
sumber
Bagaimana dengan: nonaktifkan mode auto-revert, kemudian jalankan perintah (misalnya, astyle) yang memformat file sesuai gaya tim Anda diafter-save-hook
pengasuh
sudahkah Anda mempertimbangkan hook pemformatan level kontrol versi, mis. hook pre-commit git?
erjoalgo

Jawaban:

1

Pendekatan yang jelas untuk ini adalah

  • indentasi salinan buffer menggunakan c-mode; lalu
  • letakkan indentasi salinan sebagai properti tampilan pada ruang indentasi di buffer asli.

Catatan 1: Menerapkan ini sambil menjaga kemampuan untuk mengedit buffer bisa menjadi mimpi buruk, jadi saya akan membuat buffer read-only.
Catatan 2: Properti teks jauh lebih cepat daripada overlay, jadi saya akan menggunakannya. Kecuali dalam kasus aneh di mana indentasi buffer asli adalah 0 dan c-modetidak.

politza
sumber
Ini dapat dilakukan dengan properti teks dengan menambahkan kata kunci pengunci font tambahan. Saya lebih peduli mencari tahu bagaimana indentasi seharusnya ditampilkan.
wasamasa