Eksportuj (0) Drukuj
Rozwiń wszystko

Metoda IScanner.ScanTokenAndProvideInfoAboutIt —

Visual Studio 2012

Analizuje dalej tokenu języka z bieżącego wiersza i zwraca informacje na jego temat.

Przestrzeń nazw:  Microsoft.VisualStudio.Package
Zestawy:   Microsoft.VisualStudio.Package.LanguageService.10.0 (w Microsoft.VisualStudio.Package.LanguageService.10.0.dll)
  Microsoft.VisualStudio.Package.LanguageService.11.0 (w Microsoft.VisualStudio.Package.LanguageService.11.0.dll)
  Microsoft.VisualStudio.Package.LanguageService.9.0 (w Microsoft.VisualStudio.Package.LanguageService.9.0.dll)
  Microsoft.VisualStudio.Package.LanguageService (w Microsoft.VisualStudio.Package.LanguageService.dll)

bool ScanTokenAndProvideInfoAboutIt(
	TokenInfo tokenInfo,
	ref int state
)

Parametry

tokenInfo
Typ: Microsoft.VisualStudio.Package.TokenInfo
[w, out] TokenInfo Struktury do wypełnienia.
state
Typ: System.Int32
[w, out] Wartość stanu bieżącego skanera.

Wartość zwracana

Typ: System.Boolean
Zwraca true , jeśli zostanie przeanalizowany tokenu z bieżącym wierszem i informacje zwrócone; w przeciwnym razie zwraca false wskazujące nie więcej tokenów w bieżącym wierszu.

Wywołanie SetSource Metoda Ustaw wiersz, który ma zostać przeanalizowany. Następnie ScanTokenAndProvideInfoAboutIt metoda jest zazwyczaj nazywany wielokrotnie, aż do uzyskania wszystkich tokenów.

To jest przykładowy sposób colorizer może użyć tej metody.

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

Pokaż:
© 2014 Microsoft