IScanner.ScanTokenAndProvideInfoAboutIt(TokenInfo, Int32) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Выполняет синтаксическую проверку следующего токена языка из текущей строки и возвращает сведения о нем.
public:
bool ScanTokenAndProvideInfoAboutIt(Microsoft::VisualStudio::Package::TokenInfo ^ tokenInfo, int % state);
bool ScanTokenAndProvideInfoAboutIt(Microsoft::VisualStudio::Package::TokenInfo const & tokenInfo, int & state);
public bool ScanTokenAndProvideInfoAboutIt (Microsoft.VisualStudio.Package.TokenInfo tokenInfo, ref int state);
abstract member ScanTokenAndProvideInfoAboutIt : Microsoft.VisualStudio.Package.TokenInfo * int -> bool
Public Function ScanTokenAndProvideInfoAboutIt (tokenInfo As TokenInfo, ByRef state As Integer) As Boolean
Параметры
- state
- Int32
[in, out] Значение текущего состояния сканера.
Возвращаемое значение
Возвращает true если токен был проанализирован из текущей строки и данные вернулись; в противном случае Возвращает false, указывая, что нет больше маркеров на текущей строке.
Примеры
Это пример того, как при использовании этого метода можно использовать этот метод.
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;
}
}
}
Комментарии
Вызовите SetSource метод, чтобы задать строку, которая должна быть проанализирована. Затем ScanTokenAndProvideInfoAboutIt метод обычно вызывается повторно, пока не будут получены все токены.