タブとスペースが混在しているときのC言語No.27396
Y_H さん 10/01/08 13:10
 
「自動インデント - C言語用のインデント」で
「}」を入力したときの字上げですが、
タブ文字のみでインデントしているときでないと機能が動きません。

ソースの書きかたという宗教的なものに関わるので恐縮なのですが、
極端な例で、

if (...) {
<TAB>Func(a,
<TAB>     b,
<TAB>     c);
<TAB>     I (←カーソル)

という状態で「}」を入力すると、その位置に入ってしまいます。

「Func(a,」で改行した段階で次の行に自動でタブが1文字入りますが、
そこから「b」まで移動する際にはタブではなくスペースを入れています。

というのも、昔からの教えで、行頭には階層を示すためにタブを、
それ以降の前行との位置合わせにはスペースを使うようにしています
(タブの文字数が変わってもソースが崩れないため)。

タブとスペースが混在していても
C言語用のインデントが正しく動くようにするのは難しいでしょうか。
可能であれば、Ver8のときで構いませんので検討していただけると嬉しいです。
よろしくお願いします。

[ ]
RE:27396 タブとスペースが混在しているとNo.27397
秀丸担当 さん 10/01/08 13:33
 

>「自動インデント - C言語用のインデント」で
>「}」を入力したときの字上げですが、
>タブ文字のみでインデントしているときでないと機能が動きません。

確かに半角空白が含まれている場合はできませんでした。
[その他]→[ファイルタイプ別の設定]→[体裁]→[詳細]の「タブで半角入力」が
ONの場合は、タブと空白が混ざっていても大丈夫になっていました。
「タブで半角入力」がOFFであっても、そのときと同じようにしてもいいかもしれ
ません。
現在開発中のV8.00の次のβ版で修正してみます。

[ ]