> 関数の引数を複数行にわたって記述した場合に,関数の中身のインデントがどんどん深くなってしまうのですが...
>
> int abcde (
> int param1,
> int param2 // 先頭が揃わない
> ) // <-- 括弧の入力時にlevel 3->0
> {
> abcde(); // <-- 括弧の入力時にlevel 2->1
> a = 0;
> b = 0; // どんどん深くなる
> } // <-- 括弧の入力時にlevel 4->0
こちらでも現象のほう確認しました。
入力行がEOFを含むときに発生するようです。
さっそく修正しましたー。
http://49uper.com:8080/html/img-s/18082.lzh> TAB入力を整形で横取りしているので,思い通りのTABが入ってくれない場合にTABを追加できなくてストレスがたまる..ような人は使わなければいいだけかな.(思い通りなら問題ないんですが...) TABキーはTAB文字入力のままにしておいて,インデントは別のコマンドを追加した上でTABに割り当てた方がいいのかも.
できるだけ思い通りのTABが入るようにチューニングしていけたらいいなーと思います。
> インデントにスペースとタブのどちらを使うかのフラグが共通設定にあるので,DoSmartIndent()にインデント幅及びTAB/SPACEの区別を渡すように出来ればうまく連動させられるように思います.
たしかに、タイプ別設定に”SPACEの挿入”ってフラグがありますね。
CEditView_Command_Indent(170)から
#ifdef INDENT_BY_SPACE
for( int i = 0 ; i < *len ; i++ ){
ret[i] = SPACE;
}
#else
for( int i = 0, j = 0 ; i < *len ; i++ ){
/* 略 */
}
#endif
となっているところを、(m_bInsSpace==0)の分岐に変えればOKのはずですー。
と思ったら、タイプ別設定の”SPACEの挿入”をチェックするとTAB入力がこなくなってしまうのですね。(^^;;;;;
> 現行のSmartIndentとだいぶ違うので併用できる形にしたいと思います.
もし、片隅にでも使っていただければ幸いですー。