SE・プログラミングのあれこれ

【C#,Unity】VSCodeで自動フォーマットする方法

unity

やりたいこと

1.vscodeでc#の自動フォーマット

2.unityでvscodeを用いてC#を書く際に、ctrl+Sを実行時に自動でコードをフォーマット

※vscodeのバージョンは 1.48.2

やり方

1.vscodeでc#の自動フォーマット

注意

vscodeの作業状態には、以下の2つの種類がある。

  1. ファイルを開いているとき
  2. フォルダを開いているとき

1.ファイルを開いているときは下のステータスバーが紫になる

vscodeでファイルを開いているとき

2.フォルダを開いているときは下のステータスバーが青になる

vscodeでフォルダを開いているとき

 

この記事の作業は必ずフォルダを開いた状態(下のステータスバーが青いとき)ですること。

そうしないと、フォーマットが正常に動作しない

※追記

上記の事実は重要ではなかった。

正確には、以下の画像のようにomnisharpのアイコンが出ているか否かがフォーマットの動作に関わる模様。

omnisharp server is running

このアイコンをマウスオーバーすると「OminiSharp server is running」と表示される。この状態ならC#のフォーマットが有効になる。

vscodeで拡張機能「C#」をインストール。基本的にこれだけ。

C#

インストールできたら「Shift+Alt+F」で.csファイルがフォーマットされるか確認する。

フォーマットできない時は

以下のような表示が出て、フォーマットできない場合がある。

c#error

これが出たときは「しばらく待つ、vscodeやPCを再起動する」などすれば正常になる。

 

続いて、Ctrl+Sで保存したときに自動でフォーマットされるよう設定する。下の画像も参考に。

  1. vscodeの左下の歯車のアイコンをクリック
  2. 設定をクリック
  3. 設定タブが表示されるので、検索フォームに「format」と入力
  4. 「Editor:Format On Save」にチェック。お好みで「On Paste、On Type」にもチェックを入れてもいい。

vscodeの自動フォーマット設定

これでctrl+Sで保存&フォーマットができる。

2.UnityでもC#を自動フォーマット

UnityからC#ファイルを開いたとき、以下の画像のようにステータスバーが紫になっている。

vscodeでファイルを開いているとき

前述したとおり、この状態ではフォーマッターが有効ではなく、以下のダイアログが出る。

c#error

これを解消するためにフォルダを開いてステータスバーを青にする必要があるのだが、その方法は2つある。

方法1:あらかじめフォルダを開いた状態のvscodeを起動しておく

下の画像も参考に。

  1. 適当なフォルダをvscodeで開く。この時、ステータスバーにomnisharpのアイコンが出ていること(下の画像)。
  2. Unityで編集したいファイルを開く。

omnisharp server is running

これでUnityの.csファイルが自動フォーマットできる。

方法2:Unityでファイルを開いた後、フォルダを開く

  1. Unityで編集したいファイルをvscodeで開く
  2. vscodeで「フォルダーを開く」を選択
  3. 適当なフォルダを選択。今回は編集対象の.csファイルがあるscriptsフォルダを選択した。
  4. 左下にomnisharpのアイコンが表示されていればOK。環境・開いたフォルダによってはアイコンが表示されないことがある模様。

vscodeでファイルを開いているとき

Unityのscriptsフォルダ