Condividi tramite


Metodo IVsCompletionSet.OnCommit

Determina come testo viene completato.

Spazio dei nomi:  Microsoft.VisualStudio.TextManager.Interop
Assembly:  Microsoft.VisualStudio.TextManager.Interop (in Microsoft.VisualStudio.TextManager.Interop.dll)

Sintassi

'Dichiarazione
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

Parametri

  • pszSoFar
    Tipo: String

    [in] Il testo digitato fino a questo momento.

  • iIndex
    Tipo: Int32

    [in] Indice che identifica l'elemento set di completamento della corrispondenza.

  • fSelected
    Tipo: Int32

    [in] Indica se un elemento di completamento selezionato nella casella di completamento. se GetDisplayText, quindi il valore di di trueil parametro viene sostituito dal testo restituito da pszSoFar . se true, significa che S_OK restituisce con il valore di pbstrCompleteWord uguale a pszSoFar è il comportamento predefinito appropriato. il valore predefinito di fSelected viene true.

  • cCommit
    Tipo: UInt16

    [in] L'ultimo carattere che è stato digitato.

  • pbstrCompleteWord
    Tipo: String%

    [out] restituisce la parola completa.

Valore restituito

Tipo: Int32
Se il metodo ha esito positivo, restituisce S_OK.Se non riesce, restituisce un codice di errore.

Note

Firma COM

da textmgr.idl:

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

Implementare questo metodo per personalizzare come e quando i completamenti di istruzioni viene eseguito il commit al testo.

Il comportamento predefinito comporta un applicate se l'utente preme uno dei caratteri di completamento standard. I caratteri di completamento standard sono tutti i caratteri non alfanumerici ad eccezione di “~„ e “_„. La sostituzione di testo si verifica al commit solo se un elemento di testo corrispondente del meglio è attualmente selezionato nella casella di riepilogo di rilascio di completamento delle istruzioni. È il testo che sostituisce il testo digitato fino a questo momento.

Questo metodo viene chiamato solo se il valore di CSF_CUSTOMCOMMIT viene specificato per i flag del set di completamenti. Questo metodo viene chiamato una volta per ogni carattere che il completamento dell'istruzione while dei tipi di utenti è attivo.

Se il metodo restituisce S_FALSE, alcun commit si verifica e il carattere viene inserito come carattere (di completamento) normale.

Nota

Per non restituire S_FALSE se il carattere è un oggetto TAB o CTRL-ENTER, poiché questi casi vengono applicati di commit.

Se il metodo restituisce S_OK, un commit si verifica. se fSelected viene true, quindi il valore restituito in pbstrCompleteWord sostituisce il testo digitato fino a questo momento. se fSelected viene false o restituito pbstrCompleteWord il valore viene nullriferimento null (Nothing in Visual Basic), quindi il testo esistente non viene sostituito il commit.

Esempi

Di seguito viene riportato un esempio del metodo di OnCommit.

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;
}

Sicurezza di .NET Framework

Vedere anche

Riferimenti

IVsCompletionSet Interfaccia

Spazio dei nomi Microsoft.VisualStudio.TextManager.Interop