今日、Visual Studio 2019 Preview 3 のリリースノートを読んでたら dotnet-format ツールが紛れてました。
一括で .editorconfig
の適用してくれるとか。ありがたい。
試してみよう
ということでインストールしてみます。.NET Core の最新版が入ってれば以下のコマンドで OK
dotnet tool install -g dotnet-format --version 3.0.0-beta4-19105-10
2019/02/15 現在のプレビュー版のバージョンなので、実際に試すときは GitHub のページ見てバージョン等確認してください。
こんなメッセージが出れば成功です
You can invoke the tool using the following command: dotnet-format Tool 'dotnet-format' (version '3.0.0-beta4-19105-10') was successfully installed.
ということで適当に dotnet new console
とかしてぐちゃぐちゃなフォーマットのファイルを用意します。
.editorconfig
は roslyn のリポジトリーからとってきました。
roslyn/.editorconfig at master · dotnet/roslyn · GitHub
準備ができたのでコマンドをたたきます。
dotnet-format -v diag
オプションは無くていいのですが詳細メッセージ出してもらうためにつけてます。
$ dotnet-format -v diag ワークスペース 'D:\Repos\DotnetFormatTest\DotnetFormatTest.csproj' でコード ファイルを書式設定します。 ワークスペースを読み込んでいます。 ワークスペース 2343 ミリ秒で読み込まれます。 プロジェクト 'DotnetFormatTest' でコード ファイルを書式設 定しています。 コード ファイル 'Person.cs' をフォーマットしています。 コード ファイル 'Program.cs' をフォーマットしています。 Formatted 0 of 2 files in 1752ms. フォーマットが完了しました。
てっきり英語のメッセージが出るかと思ってたら日本語が出てびっくり。
ファイルもこんな感じになってました。
Person クラスのほうが .editorconfig
とかで指定できてないようなところどうなるかな?って思ったのですが、そこについては普通にノータッチっぽいですね。いいと思う。
余談ですが .editorconfig
にエンコーディング指定もあったので EUC-JP で保存したのちに dotnet-format してみましたが、そこはまだっぽいですね。EUC-JP のままでした。(予定があるのかとかはチェックしてない)
まとめ
プロジェクト単位やソリューション単位で .editorconfig
でフォーマットしてくれるの欲しかったのでちょうどよかったです。
先日、そこまで膨大な数じゃないけど 1 ソリューションのコードフォーマットする機会があったのですが調べる時間もめんどうで手動で 1 ファイルずつ心を込めてやったのですが、その時に欲しかった。