Visual Studioは便利ですが、RiderやResharperを考えるとまだまだよくなる余地を感じます。 そんな中でVisual Studio 2022になって有効にしている便利な設定をメモしておきます。
tl;dr;
コード上で分析情報や型、パラメーターをインライン表示できるようになり、目線をコードから移動せずに済むので便利。
- Text Editor > C# > Advanced > Display diagnostics inline (experimental)
- Text Editor > C# > Advanced > Display inline parameter name hints
- Text Editor > C# > Advanced > Display inline type hints
きっかけ
RiderのInlay hintsがうらやましい。VS2019のころにRiderでいいなぁと思っていたのがInlay hintsでした。1
Type name hintsやCode analysis hintsは、個人的に欲しいと思ってたもののVisual Studioではどうやるのかなぁと思いつつ放置していたのでした。(やれると思ってなかった)
Visual Studio でインラインでヒントを表示する
Visual Studio 2022では、Riderを見ててよさそうだった次の3つの設定を有効にしています。実際とてもいいので、しばらくは有効なままでやっています。
- Display diagnostics inline (experimental)
- Display inline parameter name hints
- Display inline type hints
設定前後のコード表示を見ると、得られる情報量が違っているのがわかります。
Display diagnostics inline (experimental)
この設定を有効にすると、Error Listで表示されていた分析情報がコード上にインラインで表示されます。 Error Listは常に見たいですが、IDEの下は一等地なのでそればかり見るわけにもいかないのでインラインでお知らせしてくれるほうが好ましく感じます。
設定はText Editor > C# > Advanced > Display diagnostics inline (experimental)
から行えます。
ただし欠点もあり、書いている最中でも警告を出してきます。例えば、書いている最中の、文末のセミコロンがないというのさえ警告が出てきます。この時at the end of the line of code
にしていると、書いている最中のコードに被って何も見えなくなるので、on the right edge of the editor in window
が妥協ラインになります。ただ、画面ギリギリの時に結局かぶるのですが。
書いている最中は警告出ないか一行上とかにずれてほしいものですね。
Display inline parameter name hints
この設定を有効にすると、メソッドのパラメーター名がコード上にインラインで表示されます。
時々、メソッド引数をenableNantoka: true
のようにパラメーター名を明示して指定することがありましたが、それはこの設定で見たい情報に他なりません。設定しても今後もやるんでしょうが、コードリード上も便利で好ましく感じます。
設定はText Editor > C# > Advanced > Display inline parameter name hints
から行えます。
気づいていなかったのですが、Visual Studio 2019 v16.8で Display inline parameter name hints (experimental) として提供されていたんですね。
Display inline type hints
この設定を有効にすると、メソッドのパラメーターごとの型がコード上にインラインで表示されます。
var
の型表示やメソッドのパラメーターの型もうれしいのですが、特にラムダ式でパラメーターの型がインラインでわかるのは思ったより便利で好ましいです。
設定はText Editor > C# > Advanced > Display inline type hints
から行えます。
まとめ
Visual Studioも粛々と進化しているのでいいですね。
そういえば、VS2019で .NET 6がサポートされていないのは悲しいです。.NET 6使いたかったらVS2022というのは、.NETにとってはネガティブインパクトが強そうですね。
- inlineじゃなくてinlayなんですね↩