Partilhar via


Método IVsCompletionSet.OnCommit

Determina como o texto é concluído.

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

Sintaxe

'Declaração
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

Parâmetros

  • pszSoFar
    Tipo: String

    [in] O texto digitado até agora.

  • iIndex
    Tipo: Int32

    [in] Identificando a conclusão da correspondência definir item de índice.

  • fSelected
    Tipo: Int32

    [in] Indica se um item de conclusão é selecionado na caixa de auto-completar. Se true, em seguida, o valor da pszSoFar parâmetro é substituído pelo texto retornado por GetDisplayText. Se true, isso indica que uma S_OK retorno com o valor da pbstrCompleteWord igual a pszSoFar é o comportamento padrão apropriado. O valor padrão para fSelected é true.

  • cCommit
    Tipo: UInt16

    [in] Último caractere que foi digitado.

  • pbstrCompleteWord
    Tipo: String%

    [out] Retorna a palavra completa.

Valor de retorno

Tipo: Int32
Se o método for bem-sucedido, ele retorna S_OK.Se ele falhar, ele retorna um código de erro.

Comentários

COM assinatura

De textmgr.idl:

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

Implemente este método para personalizar quando e como as conclusões de instrução são comprometidos com o texto.

O comportamento padrão faz com que uma confirmação se o usuário pressionar qualquer um dos caracteres padrão de conclusão. Os caracteres de preenchimento padrão são quaisquer caracteres não alfanuméricos, com exceção de "~" e "_". Substituição de texto em Submeter somente ocorrerá se um item de texto que melhor corresponda selecionado atualmente na caixa de lista de soltar de conclusão de instrução. É esse texto que substitui o texto digitado até agora.

Este método é chamado somente se um valor de CSF_CUSTOMCOMMIT é especificado para a conclusão definir sinalizadores. Esse método é chamado uma vez para cada caractere que o usuário digita enquanto a conclusão da instrução está ativa.

Se esse método retorna S_FALSE, nenhum comprometimento ocorre e o caractere é inserido como um caractere de normal (não concluir).

Dica

Não retornam S_FALSE se o caractere é um guia ou CTRL-ENTER, pois esses são casos de confirmação de imposto.

Se esse método retorna S_OK, uma confirmação ocorre. Se fSelected é true, em seguida, o valor retornado em pbstrCompleteWord substitui o texto digitado até agora. Se fSelected é false ou retornado pbstrCompleteWord o valor é nulluma referência nula (Nothing no Visual Basic), e em seguida, o texto existente não é substituído em Submeter.

Exemplos

Este é um exemplo do método 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;
}

Segurança do .NET Framework

Consulte também

Referência

IVsCompletionSet Interface

Namespace Microsoft.VisualStudio.TextManager.Interop