VSのパラメータヒントについて

タグの編集
投稿者 SSD  (社会人) 投稿日時 2022/12/5 09:28:46
VisualStudioで表示されるパラメータヒントについて質問があります。
(メソッドなどでShift + Ctrl + Spaceで表示されるヒント)

3行以上のヒントがある(パラメータがたくさんある)場合でも、
3行までしか表示されないです。

1行目:メソッド名、引数、戻り値のコード
2行目:<summary>ノードの内容
3行目:1つ目の<param>ノードの内容
という感じです。

すべてのパラメータヒントを表示するにはどうすればよいでしょうか?
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2022/12/5 14:49:35
> (メソッドなどでShift + Ctrl + Spaceで表示されるヒント)
「Ctrl + Shift + Space」あるいは
「Ctrl + K、P」「Ctrl + K、Ctrl + P」などのショートカットは
Edit.ParameterInfo コマンド、いわゆる「パラメーター ヒント」であり、
「現在位置のパラメーター」に対する情報を表示するためのものなので、
表示されるパラメーター情報も 1 つだけです。

※なお、Ctrl + Shift + Space の操作は ReShaper によってオーバーライドされる可能性があります。


> すべてのパラメータヒントを表示するにはどうすればよいでしょうか?
複数のパラメーター表示となると、コード補完目的で呼ばれるものではないので、
現状は残念ながら入力時ではなく、オブジェクト ブラウザーを使って確認する形になるでしょう。

パラメーター ヒントで対応する場合は、該当パラメーターまで移動するようにするか、
カンマを追加して不足している引数を加えることになるでしょう。


> 3行までしか表示されないです。
コンテキストによっては一応、3 行を超える IntelliSense 表示もあります。

たとえば『Edit.QuickInfo コマンド』のクイック ヒント。
標準では「Ctrl + K、Ctrl + I」や「Ctrl + K、I」に割り当てられていますが、
これは <summary> だけでなく、<remaks> や <exception cref="" /> を含みますし、
<para> で段落分けされているものなら改行されますので、結果として 3 行を超えることがあります。






IntelliSense によっては、 <summary> の部分しか表示されない入力ヒントもありますし、
<completionlist cref="" /> のように、 説明ではなく入力補助のためのものもありますし、
あるいは <example> のように、入力時ではなくドキュメント向けのタグもあります。
言語依存で表記が変わるものもあります。
投稿者 SSD  (社会人) 投稿日時 2022/12/9 09:56:45
魔界の仮面弁士 様

> 表示されるパラメーター情報も 1 つだけです。
なるほど、そういう仕様でしたか。
カンマなどを入力して移動すれば対象のパラメーターのヒントが表示されますね。

> たとえば『Edit.QuickInfo コマンド』のクイック ヒント。
> 標準では「Ctrl + K、Ctrl + I」や「Ctrl + K、I」に割り当てられていますが、
添付して頂いた画像のようになりませんでした。
入力したパラメータ自体の型のヒント?が表示されるだけか、
パラメータを入力していない状態では何も表示されませんでした。

求めていたのは添付して頂いた画像のような状態なので、
Edit.QuickInfoというのをもう少し調べてみます。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2022/12/9 12:33:34
>> 標準では「Ctrl + K、Ctrl + I」や「Ctrl + K、I」に割り当てられていますが、
> 添付して頂いた画像のようになりませんでした。

半年前の投稿では、「Visual Studio 2019」を使っているとのことでしたね。
Visual Studio の初回起動時に、下記に似た設定画面が現れたと思いますが、
そこでどの設定を選択されましたか?



> 入力したパラメータ自体の型のヒント?が表示されるだけか、
こちらはパラメーターのヒントや型のヒントを見るものではありません。
引数の括弧内やクラス名のところではなく、メソッド名のところで呼び出してください。

同じメソッドであっても、引数のオーバーロードの異なるものを呼び出していれば、
それに応じた説明が表示されるはずです。
パラメーターの説明とは異なり、戻り値の解説や例外情報なども得られるかと。





> Edit.QuickInfoというのをもう少し調べてみます。
メニューでいうと、[編集]-[IntelliSense]-[クイック ヒント] というものになります。

コマンド名で指定する場合は、[表示]-[その他のウィンドウ]-[コマンドウィンドウ (Ctrl+Alt+A)]
を起動し、メソッド名にカーソルがある状態で、『Edit.QuickInfo』と記述すると同じ効果が得られます。

コマンド ウィンドウはあまり使わない機能だとは思いますが、Visual Studio の操作には
それぞれコマンド名が用意されており、コマンドウィンドウから指示できます。
(メニューやショートカット項目は、カスタマイズによって変更できますが、コマンド名は変わらないので)

たとえばコマンドウィンドウで『immed』と打てばイミディエイト ウィンドウに切り替わりますし、
『help』と打てばヘルプ画面が呼び出されます。

デバッグで一時停止中に、『?? b』と打てば、変数 b の内容が
クイック ウォッチ ウィンドウに表示されます。

ちなみに ?? は Debug.QuickWatch の省略形であり、こうした別名表記の一覧は
『alias』コマンドで確認できます。