Metodo IScanner.ScanTokenAndProvideInfoAboutIt
Analizza il token seguente del linguaggio dall'attuale riga e restituisce le informazioni.
Spazio dei nomi: Microsoft.VisualStudio.Package
Assembly: Microsoft.VisualStudio.Package.LanguageService.10.0 (in Microsoft.VisualStudio.Package.LanguageService.10.0.dll)
Microsoft.VisualStudio.Package.LanguageService.11.0 (in Microsoft.VisualStudio.Package.LanguageService.11.0.dll)
Microsoft.VisualStudio.Package.LanguageService.9.0 (in Microsoft.VisualStudio.Package.LanguageService.9.0.dll)
Microsoft.VisualStudio.Package.LanguageService (in Microsoft.VisualStudio.Package.LanguageService.dll)
Sintassi
'Dichiarazione
Function ScanTokenAndProvideInfoAboutIt ( _
tokenInfo As TokenInfo, _
ByRef state As Integer _
) As Boolean
bool ScanTokenAndProvideInfoAboutIt(
TokenInfo tokenInfo,
ref int state
)
Parametri
- tokenInfo
Tipo: Microsoft.VisualStudio.Package.TokenInfo
[in, out] TokenInfo struttura da riempire.
- state
Tipo: System.Int32%
[in, out] Il valore dello stato corrente di analisi.
Valore restituito
Tipo: System.Boolean
Restituisce true se un token è stato analizzato dall'attuale linea e dalle informazioni restituite; in caso contrario, restituisce false indicazione dei token sull'attuale riga.
Note
chiamare SetSource metodo per impostare la riga che deve essere analizzata.Quindi ScanTokenAndProvideInfoAboutIt il metodo viene chiamato ripetutamente fino a ottenere tutti i token.
Esempi
Questo è un esempio della modalità con cui un colorizer possibile utilizzare questo metodo.
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;
}
}
}
Sicurezza di .NET Framework
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per ulteriori informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.