Partager via


IScanner.ScanTokenAndProvideInfoAboutIt, méthode

Analyse le jeton suivant de langage de la ligne en cours et retourne des informations connexes.

Espace de noms :  Microsoft.VisualStudio.Package
Assemblys :   Microsoft.VisualStudio.Package.LanguageService.10.0 (dans Microsoft.VisualStudio.Package.LanguageService.10.0.dll)
  Microsoft.VisualStudio.Package.LanguageService.11.0 (dans Microsoft.VisualStudio.Package.LanguageService.11.0.dll)
  Microsoft.VisualStudio.Package.LanguageService.9.0 (dans Microsoft.VisualStudio.Package.LanguageService.9.0.dll)
  Microsoft.VisualStudio.Package.LanguageService (dans Microsoft.VisualStudio.Package.LanguageService.dll)

Syntaxe

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

Paramètres

  • state
    Type : System.Int32%
    [in, out] la valeur de l'état actuel du scanneur.

Valeur de retour

Type : System.Boolean
Retourne true si un jeton était analysé de la ligne active et les informations se retournaient ; sinon, retours false n'indiquant pas plus de jeton sur la ligne en cours.

Remarques

Appelez la méthode d'SetSource pour définir la ligne qui doit être analysée.Ensuite la méthode d'ScanTokenAndProvideInfoAboutIt est en général appelée à plusieurs reprises jusqu'à ce que tous les jetons sont obtenus.

Exemples

C'est un exemple de la façon dont un coloriseur peut utiliser cette méthode.

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

Sécurité .NET Framework

Voir aussi

Référence

IScanner Interface

Microsoft.VisualStudio.Package, espace de noms