Condividi tramite


Metodo IScanner.ScanTokenAndProvideInfoAboutIt

Analizza il token seguente del linguaggio dall'attuale riga e restituisce le informazioni.

Spazio dei nomi:  Microsoft.VisualStudio.Package
Assembly:   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.9.0 (in Microsoft.VisualStudio.Package.LanguageService.9.0.dll)
  Microsoft.VisualStudio.Package.LanguageService (in Microsoft.VisualStudio.Package.LanguageService.dll)

Sintassi

'Dichiarazione
Function ScanTokenAndProvideInfoAboutIt ( _
    tokenInfo As TokenInfo, _
    ByRef state As Integer _
) As Boolean
bool ScanTokenAndProvideInfoAboutIt(
    TokenInfo tokenInfo,
    ref int state
)

Parametri

  • state
    Tipo: System.Int32%
    [in, out] Il valore dello stato corrente di analisi.

Valore restituito

Tipo: System.Boolean
Restituisce true se un token è stato analizzato dall'attuale linea e dalle informazioni restituite; in caso contrario, restituisce false indicazione dei token sull'attuale riga.

Note

chiamare SetSource metodo per impostare la riga che deve essere analizzata.Quindi ScanTokenAndProvideInfoAboutIt il metodo viene chiamato ripetutamente fino a ottenere tutti i token.

Esempi

Questo è un esempio della modalità con cui un colorizer possibile utilizzare questo metodo.

using Microsoft.VisualStudio.TextManager.Interop;
using Microsoft.VisualStudio.Package;

namespace MyLanguagePackage
{

    public class MyColorizer : IVsColorizer
    {
        IScanner scanner;

        public int ColorizeLine(int line,
                                int length,
                                IntPtr ptr,
                                int state,
                                uint[] attrs)
        {
            int linepos = 0;
            if (this.scanner != null)
            {
                try
                {
                    string text = Marshal.PtrToStringUni(ptr, length);

                    this.scanner.SetSource(text, 0);

                    TokenInfo tokenInfo = new TokenInfo();

                    while (this.scanner.ScanTokenAndProvideInfoAboutIt(tokenInfo, ref state))
                    {
                        // Do something with tokenInfo
                    }
                }
                catch (Exception)
                {
                    // Catch and ignore exceptions
                }
            }
            return state;
        }
    }
}

Sicurezza di .NET Framework

Vedere anche

Riferimenti

IScanner Interfaccia

Spazio dei nomi Microsoft.VisualStudio.Package