Quantcast
Channel: かずきのBlog@hatena
Viewing all articles
Browse latest Browse all 1387

C# の複数ファイルの一括フォーマットツール

$
0
0

今日、Visual Studio 2019 Preview 3 のリリースノートを読んでたら dotnet-format ツールが紛れてました。

github.com

一括で .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とかしてぐちゃぐちゃなフォーマットのファイルを用意します。

f:id:okazuki:20190215092450p:plain

f:id:okazuki:20190215092530p:plain

.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.
  フォーマットが完了しました。

てっきり英語のメッセージが出るかと思ってたら日本語が出てびっくり。

ファイルもこんな感じになってました。

f:id:okazuki:20190215093144p:plain

f:id:okazuki:20190215093222p:plain

Person クラスのほうが .editorconfigとかで指定できてないようなところどうなるかな?って思ったのですが、そこについては普通にノータッチっぽいですね。いいと思う。

余談ですが .editorconfigにエンコーディング指定もあったので EUC-JP で保存したのちに dotnet-format してみましたが、そこはまだっぽいですね。EUC-JP のままでした。(予定があるのかとかはチェックしてない)

まとめ

プロジェクト単位やソリューション単位で .editorconfigでフォーマットしてくれるの欲しかったのでちょうどよかったです。 先日、そこまで膨大な数じゃないけど 1 ソリューションのコードフォーマットする機会があったのですが調べる時間もめんどうで手動で 1 ファイルずつ心を込めてやったのですが、その時に欲しかった。


Viewing all articles
Browse latest Browse all 1387

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>