tech.guitarrapc.cóm

Technical updates

Visual Studio 2019 で使っている拡張機能

以前 VS2017 で使っている拡張機能について書きました。

tech.guitarrapc.com

VS2019 もRCとなり、いよいよリリースが近づいてきたにつれ、各種拡張機能もサポート対応が進んでいます。

一部はまだ対応されていないものの、今のところいい感じで使えつつあるので一度まとめてみます。

余談ですが、VS2019 では初期読み込みに時間がかかり、VS起動時間に影響のある拡張機能は拡張機能側の実装にバックグラウンドで読み込むことを推奨しています。もし新規に拡張機能を作る場合は検討されるといいでしょう。

左上にSolution名でないのが慣れないのですが、右上のQuick Search横にSolution名出ているので慣れましょう。

f:id:guitarrapc_tech:20190318010258p:plain

右下にはgit リポジトリが出てますが、Slnとずれていることもあります。

f:id:guitarrapc_tech:20190318010324p:plain

目次

Extensions一覧

Recommend Name Purpose Desc
5 Git Diff Margin - Visual Studio Marketplace git status をエディタ画面に表示 差分のハイライト表示をしてくれます
5 SwitchStartupProject for VS 2019 - Visual Studio Marketplace Startup Project の変更と定義 Webなどで複数プロジェクトを同時に起動するのが楽になります
5 VSColorOutput - Visual Studio Marketplace Output Window の色付け 出力された文字に状態に応じて色が付きます。
5 Open on GitHub - Visual Studio Marketplace VSからGitHub へのジャンプ VS2019対応のPRが作者にマージされました。また、VS2019対応だけではパフォーマンス警告がでるので、非同期読み込み対応もマージされています。
5 BuildVision - Visual Studio Marketplace ビルド結果表示の高機能化 [2020/6時点でリリースは確認済み。VS2019 対応は2018/12時点でTrial的に行われておりGitHub上で利用可能です。Background読み込み対応をするまではだVS拡張として配布しない方針のようです。]
3 Swap Selection - Visual Studio Marketplace 選択箇所の入れ替え テストとかで値を入れ替える時に便利
3 Fix Mixed Tabs - Visual Studio Marketplace ソフトタブ、ハードタブの混在ファイルを開いた時に統一できます。 2020/6 不具合はなくなっています。現在パッケージの定義がおかしいためインストール後にVSのエラーが表示されます。
2 Open UserSecrets - Visual Studio Marketplace .NET Core Console で UserSecrets ASP.NET Core MVC の Manage UserSecrets と同様の機能を .NET Core Console でも提供します。.NET Core Console でも標準で出てる気がするのでいらないかな?

修正されるまで入れない方がいいもの

すべて解消されました。

リリースを待っているもの

VS2019向けのリリースを待っている状態です。

すべてリリースされました。

それぞれの拡張

Git Diff Margin

git status の状態がVS上に表示されます。未保存が黄色、追加行が緑、変更が青、削除が赤で表示されています。削除内容も赤い三角から見えます。

f:id:guitarrapc_tech:20170725025733p:plain

marketplace.visualstudio.com

SwitchStartupProject for VS 2019

この拡張を使うとツールバーから Start up Project を確認、設定できます。他にも multi-project startup として、複数プロジェクトの同時起動もjsonで設定できるので、チームでプロジェクト設定をgit共有も簡単です。

marketplace.visualstudio.com

便利じゃないですか?

f:id:guitarrapc_tech:20170725032541p:plain

https://bitbucket.org/thirteen/switchstartupproject/src/tip/Configuration.md?fileviewer=file-view-default

VSColorOutput

Visual Studio なぜかデフォルトでは Output (出力) Window に表示された文字が単色ですが、この拡張をいれるエラーは赤字になったり色付けしてくれます。

marketplace.visualstudio.com

例えば正常ビルド

f:id:guitarrapc_tech:20170727042353p:plain

例えばエラー

f:id:guitarrapc_tech:20170727042429p:plain

Open On GitHub

VS2019 から GitHub に飛ぶ。シンプルで最高によい。

f:id:guitarrapc_tech:20200613025055p:plain

BuildVision

これがないビルド辛すぎるのでリリースされてよかった。

f:id:guitarrapc_tech:20200613025028p:plain

Open UserSecrets

ASP.NET Core では、プロジェクト名を右クリックすると Mange User Secrets (ユーザーシークレットの管理) メニューが出て、ローカル開発用 secrets.json をVSで編集しやすくします。 しかし、.NET Core Console ではこの機能がなく、せっかくMicrosoft.Extensions.Configuration.UserSecrets nuget をいれて User Secrets を取り扱えるようにしても、VSであつかうのに困ります。

この拡張を使うとそんな苦しみがなくなります。

VS2019 (16.9.4) でConsoelApp でも Manage User Secrets が出ているので、そろそろいらない気がします。

marketplace.visualstudio.com

VS2019で使わなくなった拡張

  • Visual Studio IntelliCode: Preview おわって VS2019 に同梱されました。インテリセンス、コード補完と呼ばれるコード支援機能をさらに支援します。手癖を含めて、普段使っているものが優先して表示されるので地味にめちゃめちゃ便利です。
  • BlackSpace: eidtorconfig でお任せになったので不要になりました。
  • LetMeEdit : 旧csprojでは必要ですが、新csprojではVS標準で提供されるようになりました。特にVS2019ではプロジェクト名ダブルクリックでcsprojの内容を表示するようになり便利です。
  • CustomDocumentWell:title: VS2017 までは縦タブがなかったの必須でしたが、VS2019 で標準サポートされたので不要です。色付けなど少し劣りますが、今後の改善待ちで。
  • GoToDnSpy: 2021年、dnspy オワコンしたのでおわり。ILSpy でもどうぞ。

まとめ

様々な拡張があります。VS2017からVS2019 に対応してみて感じたのですが、VS2019 の対応自体はたいしたことないのですが、バックグラウンドでの非同期読み込み実装はだるい部分があるのでVS2019対応が遅れているやつはそういうのありそうです。