空白TABで、switchをインデントしない設定No.08583
ちば さん 05/07/25 11:51
 
空白TAB設定で、動作環境->編集->高度な編集1の
「C言語インデントで、switchの場合はインデントしない」
にチェックが入っていると、switch入力後にHardタブ1文字が入ります。
前ラインのTABが2個分(スペース8文字)あると、Hardタブは2個入ります。

環境
Windows2000/XPSP1共発生、秀丸エディタVer5.00β36

【例】(空白TAB=4設定)
main()
{
    switch() {     ← ここのEnterで
>   _              ← HardTAB1個入る
        switch() { ← ここのEnterで
>   >   _          ← Hardタブ2個入る

御確認お願いいたします。

[ ]
RE:08583 空白TABで、switchをインデントNo.08587
秀丸担当 さん 05/07/25 13:38
 

>空白TAB設定で、動作環境->編集->高度な編集1の
>「C言語インデントで、switchの場合はインデントしない」
>にチェックが入っていると、switch入力後にHardタブ1文字が入ります。
>前ラインのTABが2個分(スペース8文字)あると、Hardタブは2個入ります。

このオプションの意味は、C言語用のインデントを行わないという意味で、通常
のインデントは行われます。

main()
{
    if(){
        xxxx

といった感じで、C言語用のインデントは、通常のインデントにさらに一個タブ
を追加します。
switchの場合は、

main()
{
    switch(){
    xxxx

というようになり、xxxxの位置にcaseを書くような書きかたがしやすいようにな
っています。

[ ]
RE:08587 空白TABで、switchをインデントNo.08588
ちば さん 05/07/25 14:28
 
>switchの場合は、
>
>main()
>{
>    switch(){
>    xxxx
>
>というようになり、xxxxの位置にcaseを書くような書きかたがしやすいようにな
>っています。

説明が悪かったようです。申し訳ありません。

空白タブを使う、と設定がされているのに、ハードTAB(キャラクタコード0x09)が挿
入されてしまうということです。

空白タブ(TAB=4)設定で
「switchの場合Indentしない」がチェックされていない
 →空白TAB(0x20が4つ)×2
「switchの場合Indentしない」がチェックされている
 →ハードTAB(0x09)×1
という動作は一貫性がないと思われます。

「switchの場合Indentしない」がチェックされている
 →空白TAB(0x20が4つ)×1
になるべきではないでしょうか。

よろしくお願いします。

[ ]
RE:08588 空白TABで、switchをインデントNo.08590
秀丸担当 さん 05/07/25 15:40
 

>空白タブを使う、と設定がされているのに、ハードTAB(キャラクタコード0x09)が挿
>入されてしまうということです。

そういうことでしたか。
確かにおかしいようです。
修正したいと思います。
修正はV5.00よりも後のバージョンになるかもしれません。

[ ]