IScanner.ScanTokenAndProvideInfoAboutIt 方法

分析从当前行的下一个语言标记并返回有关它的信息。

命名空间:  Microsoft.VisualStudio.Package
程序集:   Microsoft.VisualStudio.Package.LanguageService.10.0(在 Microsoft.VisualStudio.Package.LanguageService.10.0.dll 中)
  Microsoft.VisualStudio.Package.LanguageService.11.0(在 Microsoft.VisualStudio.Package.LanguageService.11.0.dll 中)
  Microsoft.VisualStudio.Package.LanguageService.9.0(在 Microsoft.VisualStudio.Package.LanguageService.9.0.dll 中)
  Microsoft.VisualStudio.Package.LanguageService(在 Microsoft.VisualStudio.Package.LanguageService.dll 中)

语法

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

参数

  • state
    类型:System.Int32%
    [in, out] 扫描仪的当前状态值。

返回值

类型:System.Boolean
返回 true ,如果标记从当前行进行分析,并信息返回;否则,将不返回指示在当前行的 false 没有其他标记。

备注

调用 SetSource 方法设置要分析的行。然后 ScanTokenAndProvideInfoAboutIt 方法重复通常会调用,直到所有标记获取。

示例

这是 colorizer 可以使用此策略方法的示例。

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

.NET Framework 安全性

请参见

参考

IScanner 接口

Microsoft.VisualStudio.Package 命名空间