📘

Visual Studio Code の設定で、言語ごとのインデントを設定する

2022/01/27に公開

2022年01月27日時点のWindows11での情報です。

この記事の目的

今年からReact(TypeScript)でのサービス開発になりました。
VSCodeでタイプスクリプト(ts)ファイル、コンポーネント(tsx)ファイルのインデントが、スペース4文字になっていたので、これを2文字に設定する手順です。

インデントは何文字が適切なのか

そもそもインデントは何文字にするのが適切なのか?

ソースコードの場合、インデントは「スペース4文字」にすることが多いです。
バックエンドのC#で開発するときは、インデントはスペース4文字に設定しています。

Angularの場合、コンポーネントファイルとソースコードファイルは完全に分離しているので、コンポーネント(Htmlファイル)はスペース2文字、ソースコード(tsファイル)はスペース4文字にしていました。

Reactの場合、コンポーネント(tsxファイル)にタグとソースコードの両方を書くので、
本当はタグ部分はスペース2文字、ソースコード部分はスペース4文字にしたいのですが、
それは無理なのでインデントはスペース2文字としました。

決めた理由は、タグ部分のインデントがスペース4文字では読みにくすぎるのと、EsLintでReactのインデントをスペース2文字としているからです。

vscodeで、言語ごとのインデントを設定する手順

vscodeを起動し「Ctrl + Shift + p」でコマンドパレットを開きます。
コマンドパレットで「Preferences: Configure … 」と入力し、選択肢に表示される
「基本設定:言語固有の設定を構成します…」を選択します。

言語を選択します。今回は「TypeScript」の設定をします。

setting.json ファイルが開くので、下記の設定を加えます。
tabSizeに字下げする文字数を指定します。
insertSpacesにtrueを指定すると、タブキーでスペースを挿入します。

"[typescript]": {
        "editor.tabSize": 2,
	"editor.insertSpaces": true        
}

同様に「typescriptreact」も設定します。

"[typescript]": {
	"editor.tabSize": 2,
	"editor.insertSpaces": true        
},
"[typescriptreact]": {
	"editor.tabSize": 2,
	"editor.insertSpaces": true
}

設定は以上です。

すでに作成した ts、tsxファイルのインデックスを修正する

vscodeで修正したいtsファイルまたはtsxファイルを開き、コマンドパレットから「Format Document」を選択します。

複数のフォマッターがインストールされている場合は、どのフォーマットを使用するかを選択します。

以上でファイルがフォーマットされます。

Discussion