mieee1103
@mieee1103

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

VSコードで行移動時にインデントを保持したい

Alt(Option)キー+矢印で行移動したときに、インデントが狂わないようにしたいです。

以前は行を複製し、それを外に出す場合でも、18行目の閉じタグがインデント無しの位置に戻りました。

どこかの設定をいじってしまったのか、
複製+行移動をすると、18行目の閉じタグのインデントが1つ下がってしまいます。

スクリーンショット 2024-06-12 161613.png
スクリーンショット 2024-06-12 161622.png

複製+行移動している閉じタグを消してやってみました。
複製+行移動している行自体はインデント無しの位置に収まりますが、18行目のインデントが狂ったままです。
スクリーンショット 2024-06-12 161645.png
スクリーンショット 2024-06-12 161654.png

設定方法がわかるかたは教えていただけますでしょうか。
よろしくお願いいたします。

0

2Answer

設定が変わったわけではなく、 CSS の仕様がルールのネストを許すように変更されたのに対応して、 VS Code の CSS モードがアップデートされた結果ではないかと思います。

以前の仕様では .l-main__inner { /* 略 */ } はトップレベルにしか書けないため、 {} を含む行をインデントする必要はありませんでした。今の仕様では以下のような書き方も正しい CSS となるため、複製+行移動に際して } もインデントされるようになったと考えます。

.l-main__inner {
    .l-main__inner {
        /* 略 */
    }
}

} が元のインデントレベルに戻らないのはバグか仕様か分かりませんが、おそらく設定で変えられるようにはなっていないと思います。気になるなら VS Code で CSS の整形をかけると良いのでは。

1Like

Comments

  1. @mieee1103

    Questioner

    回答ありがとうございます!

    なるほど!
    確かにSCSS形式で書くときと同じ挙動かもしれません。
    CSSでネスト書きしていなかったので、新しい仕様を不便に感じたのだと思います。

    自分で仕様をカスタマイズできないのは残念ですが、これを機にネスト書きへ移行しようかと思います。
    ご教示いただきありがとうございました!助かりました!

CSSにおいては、自分の環境でも @mieee1103 さんと、まったく同じ動作となりました。

VSCodeのウインドウの右下にある「CSS」をクリックして、「Text (ANSI Text)」に変えると、一切インデントが変わらなくなります。その代わり、ハイライト表示やシンタックスチェックなどが無くなります。

0Like

Comments

  1. @mieee1103

    Questioner

    ご回答ありがとうございます!

    Text (ANSI Text)は見つからなかったのですが、要はCSSとしてではなく、プレーンテキストとして扱うということですよね…?
    さすがに使いづらかったので、CSSとして扱ったまま、自分の書き方を変えようと思います…。

    ご回答いただき、ありがとうございました!

Your answer might help someone💌