げんたさん コメントありがとうございます。
> パッチを拝見しました.従来のSmartIndent_CPP()が全く使われていなくてびっくり.
> 私としてはこの仕様が良いのか悪いのかはちょっと判断できません.こういうのは「期待通り動く」ことが重要ですから.
>
> smart indentに関しては#を入れたらインデントをキャンセルしたいとか for/whike等の次の行は中括弧が無くても印田として欲しいとか要望が色々出ており,たぶん今回の変更も含めて汎用的に行うためには特定の文字が入力されたら特別な関数を呼ぶ or マクロ実行といったことができる仕組みを入れる必要があるかと思います.
for,whileで中括弧なしの場合のインデントですが
確かに便利な事もありますが、逆に
for (;;)
{
/* .... */
}
というスタイルで記述する人にとっては迷惑だったりします。
思考を妨げないのがスマートなインデントだとすると
デフォルトをOFFにしておくのが一番無難だったりします。
(コーディングスタイルは人それぞれなので...)
それはさておき、今回の変更ですが、
最初 一般掲示板のwmlhqさんの修正(#3405)と
同じような修正をしてみました。
で、いろいろと触ってみて、
現状の実装はオーバースペックに感じて....。
で、余計なインデントされるよりは
インデントが不足する場面があるほうが
無難という判断の元に作成したのが今回の変更です。
あくまで、せっかく作ったので、
必要な方はどうぞレベルというレベルです。
取り込まれるとは思っていませんので。
最後に、あまり汎用的に作ろうと構えてしまうと
沈み込んでしまうのではないかと心配です。
また、完成したとしても、
何でもできる=何にもできない
に陥ってしまう、または
Emacsのように
マクロがエディタを覆ってしまうなんて事に
ならなければいいのですが...。