tech.guitarrapc.cóm

Technical updates

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

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

tech.guitarrapc.com

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

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

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

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

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

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

GitDiffMargin

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

SwitchStartupProject for VS 2019

SwitchStartupProjectforVS2017

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

便利じゃないですか?

VSColorOutput

VSColorOutput

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

例えば正常ビルド

例えばエラー

Open On GitHub

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

BuildVision

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

Open UserSecrets

OpenUserSecrets

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が出ているので、そろそろいらない気がします。

VS2019で使わなくなった拡張

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

まとめ

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