none
VB2010 コードエディタ マウスカーソルのせるとメソッドの説明枠を非表示にしたい RRS feed

  • 質問

  • VB2010でコードの閲覧をしている最中にマウスカーソルをメソッドなどに合わせると、メソッドなどの定義や意味の説明文が示された細長い四角枠(以下「情報ボックス」と表記します)が表示されて邪魔なのですがどのようにすれば表示されなくなるのでしょうか。

    なお、ツール/オプション/テキストエディタ/Basic/全般の「自動メンバー表示」や「パラメーターヒント」は、コード入力時に、メンバーの候補や引数の書式を表示する/しないの設定なので、これらをいじっても、コード閲覧時にマウスカーソルを合わせると表示される情報ボックスは非表示になりません

    よろしくお願いします。

    2012年10月17日 7:13

回答

  • VSIXでできました。(要Professional)
    これとオプションの「自動メンバー表示」「パラメータヒント」をあわせて、マウスオーバーでも表示されなくなりました。
    参考 : Walkthrough: Displaying QuickInfo Tooltips

    Imports System
    Imports System.Collections.Generic
    Imports System.ComponentModel.Composition
    Imports Microsoft.VisualStudio.Text
    Imports Microsoft.VisualStudio.Utilities
    Imports Microsoft.VisualStudio.Language.Intellisense
    
    Friend Class TestQuickInfoSource
        Implements IQuickInfoSource
    
        Public Sub AugmentQuickInfoSession _
            (session As IQuickInfoSession,
             quickInfoContent As IList(Of Object),
             ByRef applicableToSpan As ITrackingSpan) _
                 Implements IQuickInfoSource.AugmentQuickInfoSession
    
            session.Dismiss()
            applicableToSpan = Nothing
        End Sub
    
    #Region "IDisposable Support"
        Private disposedValue As Boolean
        Protected Overridable Sub Dispose(disposing As Boolean)
            Me.disposedValue = True
        End Sub
    
        Public Sub Dispose() Implements IDisposable.Dispose
            Dispose(True)
            GC.SuppressFinalize(Me)
        End Sub
    #End Region
    End Class
    
    <Export(GetType(IQuickInfoSourceProvider))> _
    <Name("ToolTip QuickInfo Source")> _
    <Order(Before:="Default Quick Info Presenter")> _
    <ContentType("text")> _
    Friend Class TestQuickInfoSourceProvider
        Implements IQuickInfoSourceProvider
    
        Public Function TryCreateQuickInfoSource _
            (textBuffer As Microsoft.VisualStudio.Text.ITextBuffer) _
            As IQuickInfoSource _
            Implements IQuickInfoSourceProvider.TryCreateQuickInfoSource
    
            Return New TestQuickInfoSource()
        End Function
    End Class
    #VBのコード限定にするなら<ContentType("Basic")>に変更で



    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答としてマーク 佐伯玲 2012年10月23日 2:13
    2012年10月17日 14:17
  • 以下の手順で。

    1. Visual Studio 2010 SP1 SDKをインストールします。
    2. 新しいプロジェクト -> インストールされたテンプレート -> Visual Basic -> Extensibilityを開く。
    3. VSIX Projectだと設定が面倒なのでEditor Text Adornment等を選ぶ。
    4. 邪魔なvbファイルは消す。
    5. 新しいクラスファイルを作って、前述のコードをそのまま貼り付け。
    6. 足らないアセンブリ参照を追加。(たぶんMicrosoft.VisualStudio.Language.Intellisense)
    7. *.vsixmanifestを開いて、適当にID,とProductNameを変更する。
    8. リリースビルドしてできたVSIXファイルを実行する。
    9. 新規にVisualStudio(以下VS2)が起動する。
    10. VS2のツール -> 拡張機能マネージャー に作成した拡張機能があることを確認する。
    11. VS2でVBの適当なプロジェクトを作ってコードを入力してみる。
    12. マウスをコードの上に持っていって、ヒントが表示されないことを確認する。
    13. 完了!

    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答としてマーク y__y 2012年10月22日 23:38
    2012年10月19日 3:46
  • 手順の漏れありましたか。すみません。
    VisualStudio2010のツールメニューの拡張機能マネージャーにも表示されていないので、取り外す方法が分からないのですが、なにか取り外す方法はありますでしょうか。

    %LOCALAPPDATA%\Microsoft\VisualStudio\10.0\Extensions
    以下に作成した*.dllと*.vsixmanifestがあるはずなので、余計なフォルダごと削除してみてください。
    #XP以前だと\Local Settings\Application Data\Microsoft\~かな?

    *.VSIXファイルでのMEFのインストールは、ここにファイルを配置するだけのはず。
    削除しても改善しなかった場合はちょっと原因はわかりません。


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答としてマーク 佐伯玲 2012年10月23日 2:13
    2012年10月22日 10:37

すべての返信

  • VSIXでできました。(要Professional)
    これとオプションの「自動メンバー表示」「パラメータヒント」をあわせて、マウスオーバーでも表示されなくなりました。
    参考 : Walkthrough: Displaying QuickInfo Tooltips

    Imports System
    Imports System.Collections.Generic
    Imports System.ComponentModel.Composition
    Imports Microsoft.VisualStudio.Text
    Imports Microsoft.VisualStudio.Utilities
    Imports Microsoft.VisualStudio.Language.Intellisense
    
    Friend Class TestQuickInfoSource
        Implements IQuickInfoSource
    
        Public Sub AugmentQuickInfoSession _
            (session As IQuickInfoSession,
             quickInfoContent As IList(Of Object),
             ByRef applicableToSpan As ITrackingSpan) _
                 Implements IQuickInfoSource.AugmentQuickInfoSession
    
            session.Dismiss()
            applicableToSpan = Nothing
        End Sub
    
    #Region "IDisposable Support"
        Private disposedValue As Boolean
        Protected Overridable Sub Dispose(disposing As Boolean)
            Me.disposedValue = True
        End Sub
    
        Public Sub Dispose() Implements IDisposable.Dispose
            Dispose(True)
            GC.SuppressFinalize(Me)
        End Sub
    #End Region
    End Class
    
    <Export(GetType(IQuickInfoSourceProvider))> _
    <Name("ToolTip QuickInfo Source")> _
    <Order(Before:="Default Quick Info Presenter")> _
    <ContentType("text")> _
    Friend Class TestQuickInfoSourceProvider
        Implements IQuickInfoSourceProvider
    
        Public Function TryCreateQuickInfoSource _
            (textBuffer As Microsoft.VisualStudio.Text.ITextBuffer) _
            As IQuickInfoSource _
            Implements IQuickInfoSourceProvider.TryCreateQuickInfoSource
    
            Return New TestQuickInfoSource()
        End Function
    End Class
    #VBのコード限定にするなら<ContentType("Basic")>に変更で



    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答としてマーク 佐伯玲 2012年10月23日 2:13
    2012年10月17日 14:17
  • gekkaさん。返答ありがとうございます。

    参考のリンク先とかいろいろみていたのですが内容が高度すぎてよく理解できませんでした。教えてくださいましたコードの使い方の簡単な手順を示していただけるとありがたいのですがお願いできますでしょうか。

    よろしくお願いします。

    2012年10月18日 22:40
  • 以下の手順で。

    1. Visual Studio 2010 SP1 SDKをインストールします。
    2. 新しいプロジェクト -> インストールされたテンプレート -> Visual Basic -> Extensibilityを開く。
    3. VSIX Projectだと設定が面倒なのでEditor Text Adornment等を選ぶ。
    4. 邪魔なvbファイルは消す。
    5. 新しいクラスファイルを作って、前述のコードをそのまま貼り付け。
    6. 足らないアセンブリ参照を追加。(たぶんMicrosoft.VisualStudio.Language.Intellisense)
    7. *.vsixmanifestを開いて、適当にID,とProductNameを変更する。
    8. リリースビルドしてできたVSIXファイルを実行する。
    9. 新規にVisualStudio(以下VS2)が起動する。
    10. VS2のツール -> 拡張機能マネージャー に作成した拡張機能があることを確認する。
    11. VS2でVBの適当なプロジェクトを作ってコードを入力してみる。
    12. マウスをコードの上に持っていって、ヒントが表示されないことを確認する。
    13. 完了!

    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答としてマーク y__y 2012年10月22日 23:38
    2012年10月19日 3:46
  • gekkaさん。

    上記の通り行うとエラーは出ませんが拡張機能マネージャーに作成した拡張機能が表示されませんでした。いろいろ試してみて、5.の新しいクラスのクラス名を教えていただいたコードの2番目のクラス名にしておくのと、7.でAuthorのボックスに適当な文字列を入力しておくと、正しく拡張機能マネージャーに表示されて、クイックヒントも表示されなくなりました。

    ありがとうございました。


    なお、最初インストールが正しくできなかったので何度か試しているうちに、あるTextAdornment1.vsixのファイルのみ、(正しく修正した後も)ダブルクリックして実行しても、VisualStudio拡張機能インストーラーのダイアログでインストールボタンをクリックすると必ず「インストール失敗」となり、インストールログを見てみると「インストール エラー : Microsoft.VisualStudio.ExtensionManager.AlreadyInstalledException: TextAdornment1は既にインストールされています。」となります。どうも、VisualStudio2010に組み込まれたまま取り外すことができなくなってしまったようなのです。このため、このコードを正しく修正し直してもインストールすることができなくなってしまいました。VisualStudio2010のツールメニューの拡張機能マネージャーにも表示されていないので、取り外す方法が分からないのですが、なにか取り外す方法はありますでしょうか。

    よろしくお願いします。

     

    2012年10月22日 5:38
  • 手順の漏れありましたか。すみません。
    VisualStudio2010のツールメニューの拡張機能マネージャーにも表示されていないので、取り外す方法が分からないのですが、なにか取り外す方法はありますでしょうか。

    %LOCALAPPDATA%\Microsoft\VisualStudio\10.0\Extensions
    以下に作成した*.dllと*.vsixmanifestがあるはずなので、余計なフォルダごと削除してみてください。
    #XP以前だと\Local Settings\Application Data\Microsoft\~かな?

    *.VSIXファイルでのMEFのインストールは、ここにファイルを配置するだけのはず。
    削除しても改善しなかった場合はちょっと原因はわかりません。


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答としてマーク 佐伯玲 2012年10月23日 2:13
    2012年10月22日 10:37
  • gekkaさん。

    削除して正しくインストールができるようになりました。
    これですべて解決です。
    ありがとうございました。

    • 回答としてマーク y__y 2012年10月22日 23:37
    • 回答としてマークされていない y__y 2012年10月22日 23:38
    2012年10月22日 23:37