ディスクに保存されたものとは異なるインデントでコードを表示する


13

インデントスタイルを使用したいくつかのプロジェクトに取り組んでいますが、本当にイライラすることがあります。特定のインデントスタイルでコードを表示したいが、常に所定のインデントスタイルでディスクに保存したい。

具体的には、複数行の関数引数でのemacsのデフォルトのインデントスタイルが好きです...

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

しかし、プロジェクトはタブのみで、すべてを単一インデントしています...

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

最初のケースは表示できますが、2番目のケースは共有できますか?


astyleafter-save-hook
nanny

git pre-commit hookなど、バージョン管理レベルのフォーマットフックを検討しましたか?
エルジョアルゴ

回答:


1

これに対する明らかなアプローチは

  • c-mode; を使用してバッファのコピーをインデントします。その後
  • コピーのインデントを元のバッファーのインデントスペースの表示プロパティとして配置します。

注1:バッファーを編集する機能を維持しながらこれを実装すると悪夢になる可能性があるため、バッファーを読み取り専用にします。
注2:テキストプロパティはオーバーレイよりもはるかに高速なので、使用します。元のバッファーのインデントが0で、c-modesがそうではない奇妙な場合を除きます。


これは、追加のフォントロックキーワードを追加することにより、テキストプロパティで実行できます。代わりにインデントをどのように表示するかを考えるのがもっと心配です。
wasamasa
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.