LoginSignup
7

More than 1 year has passed since last update.

あなたのVisualStudioをセマンティックなカラフルに in VS2022

Last updated at Posted at 2021-11-25

C#エディタ

なにはともあれ、スクリーンショットをごらんください。

MyClassBeforeAfter.png

左がバニラ、右が拡張後です。

Visual Studioの標準設定とViasforaというVS拡張でVisual Studioをカラフルにできます。
ただカラフルになって楽しむだけでなく、セマンティックに色分けをすることで、コードの理解にも一役かってくれます。

呼び出す時にしばしば間違う、以下の区別ができます。

  • ローカル変数 vs パラメータ vs フィールド vs プロパティ
  • 普通のメソッド vs 静的メソッド vs 拡張メソッド

しばしば議論になるfieldに _ を付けるかべきかは
この機能でセマンティックに判別出来るので不要だと思います。

Expression-Bodiedで書かれたメソッドと読み取り専用プロパティは () の有無でしか区別できませんが、色がはっきり違うと識別しやすいです。

Rainbow Braces

image.png

これはViasforaの機能ですが、色から対応する括弧が区別できます。
余分な括弧の背景色が強調されています。

XAMLエディタ

MainWindowXamlBeforeAfter.png

XAMLエディタもカラフルにできます。
Closeタグは正直なくてもいいと思っているので、背景色に近くしてしまいました。
Bindingは大事なので目立つ色に。

導入方法

Viasfora インストール

2022/05/09アップデート

Visual Studio Marketplaceからインストールできます。

正式リリース前のインストール方法

執筆時点(2021/11/25)ではViasforaの公式版はまだVisualStudio2022に対応していません。

Viasfora - Visual Studio Marketplace

なので、Forkしてビルドしたものが別レポジトリのReleaseにあるので、それを使います。

https://github.com/IllyaTheHath/viasfora/releases/tag/vs17

ダウンロードしたViasfora.vsixをダブルクリックして、VisualStudio2022にインストールします。

本家でもVS2022対応はするつもりのようなので、公式版が良ければ、それを待っても良いと思います。

https://github.com/tomasr/viasfora/issues/314

設定変更 - 設定ファイルインポートの場合

上のスクリーンショットの色は自前で調整しました。
作成した色の設定ファイルをGitHubに上げたので、ダウンロードしてインポートすると同じ色にできます。

設定変更 - 自分で指定の場合

ツール>オプション>環境>フォントおよび色>で色を設定します。
関係ありそうな設定と調べた限りの解説です。

設定名 コード例 解説
Viasfora Flow Control Keyword if, return 条件分岐などのコードフローキーワード
Viasfora Visibility Keyword private string アクセス修飾子
Viasfora XML Prefix Closing _<_/**local**:~> XML(XAML)のCloseタグのプレフィックス
Viasfora XML Closing Tag **Grid**> XML(XAML)のCloseタグ
Viasfora XML Prefix _<**local**:~_> XML(XAML)のタグのプレフィックス
キーワード private void MyMethod(int input) => new MyClass(... アクセス修飾子とコードフロー以外のC#文法の予約語
シンボル - 静的 static void StaticMethod() 静的メソッド・クラスなどを太字にするかどうかだけ設定可能
ユーザーメンバー - インターフェイス interface IMyInterface
ユーザーメンバー - クラス class MyClass
ユーザーメンバー - デリゲート delegate void MyDelegate
ユーザーメンバー - レコード record MyRecord
ユーザーメンバー - レコード構造体 record struct MyStrRecord
ユーザーメンバー - 型パラメーター Method<**T**>(T input) ジェネリックメソッド・クラスで使われる
ユーザーメンバー - 構造体 struct MyStruct
ユーザーメンバー - 列挙型 enum MyEnum
ユーザーメンバー - イベント event MyDelegate MyEvent;
ユーザーメンバー - パラメーター static void Main(string[] args) メソッドの引数やラムダ式の一時変数
ユーザーメンバー - フィールド privateField(上スクリーンショット)
ユーザーメンバー - プロパティ Property(上スクリーンショット)
ユーザーメンバー - メソッド InitializeComponent(); 拡張メソッドでないメソッド
ユーザーメンバー - ローカル local(上スクリーンショット) ローカル変数
ユーザーメンバー - 拡張メソッド .Select(x =>
ユーザーメンバー - 定数 const string CONST_VALUE
ユーザーメンバー - 名前空間 using System;
ユーザーメンバー - 列挙型メンバー Color.Black

注意点

  • PrivateとPubulicで色の区別はない
  • シンボル - 静的の設定で太字を有効にすると、静的メソッド・静的プロパティ・静的クラス・定数が全て太字になる。ただし、拡張メソッドは太字にならない

環境

VisualStudio 2022 v17.0.1
.NET 6
C# 10
フォントはFira Code Retina

VisualStudio 2019以前版

VisualStudio 2019以前はVisualStudioの設定が一部少なく、Viasforaに加えて、SemanticColorizerという拡張機能を追加で使います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7