VSのパラメータヒントについて
投稿者 魔界の仮面弁士  (社会人)
投稿日時
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> のように、入力時ではなくドキュメント向けのタグもあります。
言語依存で表記が変わるものもあります。
「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というのをもう少し調べてみます。
> 表示されるパラメーター情報も 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』コマンドで確認できます。
> 添付して頂いた画像のようになりませんでした。
半年前の投稿では、「Visual Studio 2019」を使っているとのことでしたね。
Visual Studio の初回起動時に、下記に似た設定画面が現れたと思いますが、
そこでどの設定を選択されましたか?

> 入力したパラメータ自体の型のヒント?が表示されるだけか、
こちらはパラメーターのヒントや型のヒントを見るものではありません。
引数の括弧内やクラス名のところではなく、メソッド名のところで呼び出してください。
同じメソッドであっても、引数のオーバーロードの異なるものを呼び出していれば、
それに応じた説明が表示されるはずです。
パラメーターの説明とは異なり、戻り値の解説や例外情報なども得られるかと。


> Edit.QuickInfoというのをもう少し調べてみます。
メニューでいうと、[編集]-[IntelliSense]-[クイック ヒント] というものになります。
コマンド名で指定する場合は、[表示]-[その他のウィンドウ]-[コマンドウィンドウ (Ctrl+Alt+A)]
を起動し、メソッド名にカーソルがある状態で、『Edit.QuickInfo』と記述すると同じ効果が得られます。
コマンド ウィンドウはあまり使わない機能だとは思いますが、Visual Studio の操作には
それぞれコマンド名が用意されており、コマンドウィンドウから指示できます。
(メニューやショートカット項目は、カスタマイズによって変更できますが、コマンド名は変わらないので)
たとえばコマンドウィンドウで『immed』と打てばイミディエイト ウィンドウに切り替わりますし、
『help』と打てばヘルプ画面が呼び出されます。
デバッグで一時停止中に、『?? b』と打てば、変数 b の内容が
クイック ウォッチ ウィンドウに表示されます。
ちなみに ?? は Debug.QuickWatch の省略形であり、こうした別名表記の一覧は
『alias』コマンドで確認できます。
(メソッドなどでShift + Ctrl + Spaceで表示されるヒント)
3行以上のヒントがある(パラメータがたくさんある)場合でも、
3行までしか表示されないです。
1行目:メソッド名、引数、戻り値のコード
2行目:<summary>ノードの内容
3行目:1つ目の<param>ノードの内容
という感じです。
すべてのパラメータヒントを表示するにはどうすればよいでしょうか?