Delegato ParseResultHandler
Utilizzato per definire un delegato per un gestore di completamento delle operazioni di analisi in un servizio di linguaggio.
Questa API non è conforme a CLS. L'alternativa conforme a CLS è [None].
Spazio dei nomi: Microsoft.VisualStudio.Package
Assembly: Microsoft.VisualStudio.Package.LanguageService.11.0 (in Microsoft.VisualStudio.Package.LanguageService.11.0.dll)
Microsoft.VisualStudio.Package.LanguageService.10.0 (in Microsoft.VisualStudio.Package.LanguageService.10.0.dll)
Microsoft.VisualStudio.Package.LanguageService.9.0 (in Microsoft.VisualStudio.Package.LanguageService.9.0.dll)
Microsoft.VisualStudio.Package.LanguageService (in Microsoft.VisualStudio.Package.LanguageService.dll)
Sintassi
'Dichiarazione
<CLSCompliantAttribute(False)> _
Public Delegate Sub ParseResultHandler ( _
request As ParseRequest _
)
[CLSCompliantAttribute(false)]
public delegate void ParseResultHandler(
ParseRequest request
)
Parametri
- request
Tipo: Microsoft.VisualStudio.Package.ParseRequest
[in] In ParseRequest oggetto che descrive ciò che l'operazione di analisi è stata modificata.
Note
Questo delegato descrive un gestore che viene chiamato quando un'operazione di analisi è completa.ParseRequest l'oggetto fornisce l'accesso ai risultati dell'operazione di analisi.Questo delegato viene passato a BeginParse metodo in LanguageService classe.
Esempi
Di seguito è riportato un esempio di come questo delegato viene utilizzato.Questo codice è basato sul codice in Source classe che gestisce l'evento di traccia per un'operazione di completamento.
namespace Microsoft.VisualStudio.Package
{
[CLSCompliant(false)]
public class Source :
IDisposable,
IVsTextLinesEvents,
IVsFinalTextChangeCommitEvents,
IVsHiddenTextClient
{
private LanguageService service;
private CompletionSet completionSet;
public virtual void Completion(IVsTextView textView,
TokenInfo info,
ParseReason reason)
{
int line;
int idx;
int hr = textView.GetCaretPos(out line, out idx));
if (hr == VSConstants.S_OK)
{
bool synchronous = (reason == ParseReason.CompleteWord ||
reason == ParseReason.DisplayMemberList);
this.BeginParse(line,
idx,
info,
reason,
textView,
new ParseResultHandler(this.HandleCompletionResponse),
synchronous);
}
}
internal void HandleCompletionResponse(ParseRequest req)
{
try
{
if (this.service == null || req.Scope == null || this.completionSet == null)
return;
ParseReason reason = req.Reason;
Declarations decls = req.Scope.GetDeclarations(req.View,
req.Line,
req.Col,
req.TokenInfo,
reason);
bool completeWord = (reason == ParseReason.CompleteWord);
if ( decls.GetCount() > 0 &&
(this.service.Preferences.AutoListMembers || completeWord))
{
this.completionSet.Init(req.View, decls, completeWord);
}
} catch (Exception e) {
}
}
}
}