共用方式為


在舊版語言服務中的參數資訊

 

發行︰ 2016年7月

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

IntelliSense 參數資訊工具提示會提供使用者有關的語言建構中的提示。

舊版的語言服務會實作成,VSPackage 的一部分,但實作語言服務功能的較新的方法是使用 MEF 延伸模組。 若要深入了解,請參閱擴充編輯器和語言服務

注意

我們建議您開始使用新的編輯器 API 儘速。 這會改善語言服務的效能,並可讓您充分利用新編輯器功能。

參數資訊工具提示的運作方式

當您在編輯器中輸入陳述式時,VSPackage 會顯示小工具提示視窗,其中包含所輸入的陳述式的定義。 例如,如果您輸入的 Microsoft Foundation Classes (MFC) 陳述式 (例如pMainFrame ->UpdateWindow) 並按左括號鍵以開始列出參數,就會顯示的定義顯示方法秘訣UpdateWindow方法。

參數資訊工具提示通常會用於搭配陳述式完成。 它們是最適合用於有參數或其他方法名稱或關鍵字之後的格式化的資訊的語言。

透過命令攔截語言服務所起始的參數資訊工具提示。 若要攔截使用者字元,您的語言服務物件必須實作IOleCommandTarget介面和文字檢視將指標傳遞至您IOleCommandTarget實作,藉由呼叫AddCommandFilter方法中的IVsTextView介面。 命令篩選器攔截程式碼視窗中輸入的命令。 監視命令的資訊可以知道何時要向使用者顯示參數資訊。 您可以使用相同的命令篩選陳述式完成、 錯誤標記和其他等等。

當您輸入的關鍵字,語言服務可以提供提示時,然後語言服務建立IVsMethodTipWindow物件並呼叫UpdateTipWindow方法中的IVsTextView通知來顯示一個提示,IDE 的介面。 建立IVsMethodTipWindow物件使用VSLocalCreateInstance,並指定 coclass CLSID_VsMethodTipWindowVsLocalCreateInstance是函式定義中呼叫的標頭檔 vsdoc.hQueryService本機登錄,然後呼叫CreateInstance在此物件上CLSID_VsMethodTipWindow

提供方法秘訣

若要提供方法秘訣,請呼叫SetMethodData方法中的IVsMethodTipWindow介面,將傳遞給它的實作IVsMethodData介面。

當您IVsMethodData會叫用類別、 其方法稱為順序如下︰

  • GetContextStream

    傳回目前文字緩衝區中的位置和相關資料的長度。 這會指示 IDE 不會遮住該資料以工具提示視窗。

  • GetCurMethod

    傳回方法數目 (以零為起始的索引),您想要最先顯示。 例如,如果傳回零,第一個多載的方法會一開始顯示。

  • GetOverloadCount

    傳回適用於目前內容中的多載方法的數目。 如果您傳回值大於 1,此方法,則文字檢視會顯示向上和向下箭號。 如果您按一下向下箭號時,IDE 會呼叫NextMethod方法。 如果您按一下向上箭號時,IDE 會呼叫PrevMethod方法。

  • GetMethodText

    參數資訊工具提示的文字建構在數個呼叫的期間GetMethodTextGetParameterText方法。

  • GetParameterCount

    傳回要顯示在方法的參數數目。

  • GetParameterText

    如果您傳回方法對應數字,以您想要顯示的多載時,呼叫這個方法是,後面接著呼叫UpdateView方法。

  • UpdateView

    您的語言服務更新編輯器 中顯示方法提示時,就會通知。 在UpdateView方法,呼叫下列︰

    <pTxWin> ->UpdateTipWindow(<pTip>, UTW_CONTENTCHANGED | UTW_CONTEXTCHANGED).  
    
  • OnDismiss

    您會收到呼叫OnDismiss方法,當您關閉方法提示視窗。