Condividi tramite


Metodo LanguageService.ParseSource

Analizza il database di origine basato su specificato ParseRequest oggetto.

Spazio dei nomi:  Microsoft.VisualStudio.Package
Assembly:   Microsoft.VisualStudio.Package.LanguageService.9.0 (in Microsoft.VisualStudio.Package.LanguageService.9.0.dll)
  Microsoft.VisualStudio.Package.LanguageService.10.0 (in Microsoft.VisualStudio.Package.LanguageService.10.0.dll)
  Microsoft.VisualStudio.Package.LanguageService.11.0 (in Microsoft.VisualStudio.Package.LanguageService.11.0.dll)
  Microsoft.VisualStudio.Package.LanguageService (in Microsoft.VisualStudio.Package.LanguageService.dll)

Sintassi

'Dichiarazione
Public MustOverride Function ParseSource ( _
    req As ParseRequest _
) As AuthoringScope
public abstract AuthoringScope ParseSource(
    ParseRequest req
)

Parametri

Valore restituito

Tipo: Microsoft.VisualStudio.Package.AuthoringScope
Se l'operazione riesce, restituisce AuthoringScope oggetto; in caso contrario, restituisce un valore null.

Note

Questo metodo deve essere implementato nella classe che deriva da LanguageService classe.Tenere presente che l'operazione di analisi può operare l'intero file di origine o una singola riga o anche un unico token.ParseReason nel codice ParseRequest definisce l'ambito dell'operazione di analisi.

restituito AuthoringScope contiene tutte le informazioni analizzate dal file di origine.

[!NOTA]

AuthoringScope è una classe astratta e deve derivare la classe da per fornire le funzionalità necessarie.la versione di AuthoringScope viene creata un'istanza in questo metodo, ParseSource.È necessario tornare AuthoringScope oggetto anche se tutti i membri della classe restituiscono valori null!

Questo metodo può essere chiamato in primo piano o thread in background e sempre è destinata a coprire il database di origine come ParseReason codice prima di restituire.

anche se ParseRequest la struttura contiene IVsTextView oggetto, non è possibile utilizzare l'oggetto in un thread in background a causa di threading pubblica.Infatti, non è possibile utilizzare nel thread in background Source, ViewFilter, CodeWindowManager classi, o qualsiasi classe che comunica direttamente o indirettamente alla visualizzazione.ParseSource il parser del metodo deve ottenere tutte le informazioni sul database di origine dal testo inserito in ParseRequest struttura (che contiene sempre l'intero file di origine.

Esempi

Di seguito è riportato uno scheletro semplice di un'implementazione possibile di ParseSource metodo.

using Microsoft.VisualStudio;
using Microsoft.VisualStudio.Package;

namespace MyLanguagePackage
{
    public class MyLanguageService : LanguageService
    {
        public AuthoringScope ParseSource(ParseRequest req)
        {
            MyAuthoringScope scope = new MyAuthoringScope();
            if (req.Reason == ParseReason.Check ||
                req.Reason == ParseReason.None)
            {
                // Parse the entire source as given in req.Text. Store results in the MyAuthoringScope object.
            }
            else if (req.Reason == ParseReason.DisplayMemberList)
            {
                // Parse the line specified in req.Line for the two tokens just before req.Col to get the identifier and the member connector symbol. Find members of the identifer in the parse tree and store the list of members in the Declarations class.
            }
            else if (req.Reason == ParseReason.MethodTip)
            {
                // Parse the line specified in req.Line for the token just before req.Col to obtain the name of the method. Find all method signatures with the same name in the existing parse tree and store the list of signatures in the Methods class.
            }
            // continue for the rest of the supported ParseReason values.
            return scope;
        }
    }
}

Sicurezza di .NET Framework

Vedere anche

Riferimenti

LanguageService Classe

Spazio dei nomi Microsoft.VisualStudio.Package