Code of Poem
Unknown programmer's programming note.

Anjutaのインデントの問題

コードエディタにgtk-source-veiwというのを使っているらしいです。フォーマッタは別のものでしょうが、インデントがおかしく変更することも出来ず困りました。具体的には、

  1. ファイルの冒頭にライセンス文のコメントがはいったとき、1文字余計にインデントされてしまう
  2. classボディのpublicなどのアクセス指定子がインデントされてしまう

という現象でした。

1つ目の方の、1文字余計にインデントされる現象はこんな感じです:

/*
.* main.c 
.* ライセンス文
.* ~~~~
.* ~~~~
.*/
class A {
public:
.....void foo(); // インデント幅は4に設定してるのに空白5つ分インデントされてしまう
.}; // ここも空白1つ分空いてしまう

一応解決策を見つけました。新規で作成したまっさらのファイルにclassを書いても問題は起きなかったので、自動で挿入されるライセンス文のコメントのところ疑って空白文字を削除してみると、期待通りのインデントになりました。

/*
* main.c 
* ライセンス文
* ~~~~ 行頭に空白を置かない
* ~~~~
*/
class A {
public:
....void foo(); // 空白4つ分になる
}; // 空白なし

ただし、ライセンス文の見た目が悪くなってしまうので、いい方法とは思えません。

2つ目の方の、アクセス指定子がインデントされてしまう現象はこんな感じです(空白文字を.で表しています):

class A {
....public:
........void foo(); 
};

こちらは解決策が見つかってません。