Ten artykuł został przetłumaczony przez maszynę. Aby wyświetlić jego treść w języku angielskim, zaznacz pole wyboru Angielski. Możesz też wyświetlić angielski tekst w okienku wyskakującym, przesuwając wskaźnik myszy nad konkretny tekst”.
Tłumaczenie
Angielski

Metoda IScanner.ScanTokenAndProvideInfoAboutIt — (TokenInfo, Int32)

 

Analizuje dalej język tokenu z bieżącego wiersza i zwraca informacje o nim.

Przestrzeń nazw:   Microsoft.VisualStudio.Package
Zestaw:  Microsoft.VisualStudio.Package.LanguageService.14.0 (w Microsoft.VisualStudio.Package.LanguageService.14.0.dll)

bool ScanTokenAndProvideInfoAboutIt(
	TokenInfo tokenInfo,
	ref int state
)

Parametry

tokenInfo
Type: Microsoft.VisualStudio.Package.TokenInfo

[out w] TokenInfo Struktury do wypełnienia.

state
Type: System.Int32

[out w] Bieżąca wartość stanu skanera.

Wartość zwracana

Type: System.Boolean

Zwraca true Jeśli analizy tokenu z bieżącego wiersza i informacje zwrócone; w przeciwnym razie zwraca false wskazujący żadnych kolejnych tokenów w bieżącym wierszu.

Wywołanie SetSource metody do ustawienia wiersza, który ma być analizowany. Następnie ScanTokenAndProvideInfoAboutIt Metoda jest zwykle nazywany wielokrotnie, dopóki wszystkie tokeny są uzyskiwane.

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;
        }
    }
}
Powrót do początku
Pokaż: