Freigeben über


IVsCompletionSet.OnCommit-Methode

Bestimmt, wie Text abgeschlossen ist.

Namespace:  Microsoft.VisualStudio.TextManager.Interop
Assembly:  Microsoft.VisualStudio.TextManager.Interop (in Microsoft.VisualStudio.TextManager.Interop.dll)

Syntax

'Declaration
Function OnCommit ( _
    pszSoFar As String, _
    iIndex As Integer, _
    fSelected As Integer, _
    cCommit As UShort, _
    <OutAttribute> ByRef pbstrCompleteWord As String _
) As Integer
int OnCommit(
    string pszSoFar,
    int iIndex,
    int fSelected,
    ushort cCommit,
    out string pbstrCompleteWord
)
int OnCommit(
    [InAttribute] String^ pszSoFar, 
    [InAttribute] int iIndex, 
    [InAttribute] int fSelected, 
    [InAttribute] unsigned short cCommit, 
    [OutAttribute] String^% pbstrCompleteWord
)
abstract OnCommit : 
        pszSoFar:string * 
        iIndex:int * 
        fSelected:int * 
        cCommit:uint16 * 
        pbstrCompleteWord:string byref -> int
function OnCommit(
    pszSoFar : String, 
    iIndex : int, 
    fSelected : int, 
    cCommit : ushort, 
    pbstrCompleteWord : String
) : int

Parameter

  • pszSoFar
    Typ: String

    [in] Der bisher eingegebenen Text.

  • iIndex
    Typ: Int32

    [in] Der Index, der das Element identifiziert abschlusses beachten.

  • fSelected
    Typ: Int32

    [in] Gibt an, ob ein Element Schließen im Feld Vervollständigung aktiviert ist. Wenn true, wird der Wert des pszSoFar-Parameters durch den Text ersetzt wird, der von GetDisplayTextzurückgegeben wurde. Wenn true, das angibt, dass eine S_OK Rückgabe mit dem Wert von pbstrCompleteWord gleich pszSoFar entsprechendes Standardverhalten ist. Der Standardwert von fSelected lautet true.

  • cCommit
    Typ: UInt16

    [in] letzten Zeichen eingegeben wurde.

  • pbstrCompleteWord
    Typ: String%

    [out] Gibt das vollständige Wort zurück.

Rückgabewert

Typ: Int32
Wenn die Methode erfolgreich ausgeführt, gibt sie S_OKzurück.Bei einem Fehler wird ein Fehlercode zurückgegeben.

Hinweise

COM-Signatur

Von textmgr.idl:

HRESULT IVsCompletionSet::OnCommit(
   [in] const WCHAR *pszSoFar,
   [in] long iIndex,
   [in] BOOL fSelected,
   [in] WCHAR cCommit,
   [out] BSTR *pbstrCompleteWord
);

Implementieren Sie diese Methode, um anzupassen, wann und wie Anweisungsvervollständigung in Text übernommen wird.

Das Standardverhalten wird ein Commit ausgeführt, wenn der Benutzer eines der Standardwert abschluss Zeichen drückt. Die Standardeinstellung abschluss Zeichen sind alle nicht alphanumerischen Zeichen mit Ausnahme von „~“ und „_“. Text Ersetzung tritt beim Commit nur auf, wenn ein übereinstimmendes Textelement bestes Anweisungsvervollständigungs ablagen derzeit im Listenfeld ausgewählt ist. Es ist dieser Text, der den Text ersetzt, der bis jetzt eingegeben wird.

Diese Methode wird nur aufgerufen, wenn ein Wert von CSF_CUSTOMCOMMIT für die Vervollständigungssatz Flags angegeben wird. Diese Methode wird einmal für jedes dieses Zeichen der Benutzer aufgerufen, während die Anweisungsvervollständigung aktiv ist.

Wenn diese Methode S_FALSEzurückgibt, tritt kein Commit ausgeführt und das Zeichen wird als normales Zeichen) (nicht-abschließendes eingefügt.

Hinweis

Geben Sie nicht S_FALSE zurück, wenn das Zeichen TAB oder STRG+EINGABEist, da diese erzwungene Commitfälle sind.

Wenn diese Methode S_OKzurückgibt, tritt ein Commit ausgeführt wurde. Wenn fSelectedtrueist, ersetzt der Wert, der in pbstrCompleteWord zurückgegebene Text, der bis jetzt eingegeben wird. Wenn fSelectedfalse oder der zurückgegebene Wert pbstrCompleteWordnullein Nullverweis (Nothing in Visual Basic)ist, wird der vorhandene Text ersetzt nicht das Commit ausgeführt.

Beispiele

Im Folgenden finden Sie ein Beispiel für die OnCommit-Methode.

STDMETHODIMP CFigStatementCompletion::OnCommit(
   /*[in] */ const WCHAR *pszSoFar,
   /*[in] */ long iIndex,
   /*[in] */ BOOL fSelected,
   /*[in] */ WCHAR cCommit,
   /*[out]*/ BSTR *pbstrCompleteWord )
{
      if (IsCharAlphaNumeric(cCommit) || cCommit == ':' || cCommit == '_')
       {
              // continue trying to match without completion
              return S_FALSE;
       }
       if (null == pbstrCompleteWord)
         return E_POINTER;
       *pbstrCompleteWord = SysAllocString(m_vecCompletions[ iIndex ]);
       return S_OK;
}

.NET Framework-Sicherheit

Siehe auch

Referenz

IVsCompletionSet Schnittstelle

Microsoft.VisualStudio.TextManager.Interop-Namespace