Metodo Colorizer.ColorizeLine
Ottiene le informazioni sugli attributi del tipo di carattere e di colore per ciascun carattere della riga di testo specificata.
Spazio dei nomi: Microsoft.VisualStudio.Package
Assembly: Microsoft.VisualStudio.Package.LanguageService.11.0 (in Microsoft.VisualStudio.Package.LanguageService.11.0.dll)
Microsoft.VisualStudio.Package.LanguageService.10.0 (in Microsoft.VisualStudio.Package.LanguageService.10.0.dll)
Microsoft.VisualStudio.Package.LanguageService (in Microsoft.VisualStudio.Package.LanguageService.dll)
Microsoft.VisualStudio.Package.LanguageService.9.0 (in Microsoft.VisualStudio.Package.LanguageService.9.0.dll)
Sintassi
'Dichiarazione
Public Overridable Function ColorizeLine ( _
line As Integer, _
length As Integer, _
ptr As IntPtr, _
state As Integer, _
attrs As UInteger() _
) As Integer
public virtual int ColorizeLine(
int line,
int length,
IntPtr ptr,
int state,
uint[] attrs
)
Parametri
- line
Tipo: System.Int32
[in] Il numero di riga dalla riga di testo non riuscito.
- length
Tipo: System.Int32
[in] Il numero di caratteri nel testo specificato.
- ptr
Tipo: System.IntPtr
[in] Un puntatore unmarshaled a una riga di testo.
- state
Tipo: System.Int32
[in] Lo stato corrente come gestito dal parser.
- attrs
Tipo: array<System.UInt32[]
[in, out] Una matrice che viene riempita con indici in GetColorableItem elenco come gestito da LanguageService classe.
Valore restituito
Tipo: System.Int32
restituisce il valore di stato aggiornato.
Implementa
IVsColorizer.ColorizeLine(Int32, Int32, IntPtr, Int32, array<UInt32[])
Note
Questo metodo analizza la riga e fornisce per ogni carattere un indice in GetColorableItemelenco in quanto indicato del servizio di linguaggio tramite di ColorableItem ).In genere, questo metodo chiama i metodi IScanner oggetto per analizzare la riga in token e restituire un indice il colore dell'elemento per ogni token.
questo metodo è un'implementazione di ColorizeLine.
Il metodo di base elabora l'intero token della riga alla volta chiamando lo scanner ScanTokenAndProvideInfoAboutIt il metodo fino alla riga scaduto e riempie attrs matrice per ogni token utilizzando restituito TokenInfo struttura per informazioni sui colori.
Esempi
L'esempio seguente è simile alla versione gestita del framework del pacchetto di Colorizer la classe implementa questo metodo.Si noti il processo di effettuare il marshalling del testo in una stringa.
namespace Microsoft.VisualStudio.Package
{
public class Colorizer : IVsColorizer
{
IScanner scanner;
public virtual 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();
tokenInfo.EndIndex = -1;
while (this.scanner.ScanTokenAndProvideInfoAboutIt(tokenInfo, ref state))
{
if (attrs != null)
{
for (; linepos < tokenInfo.StartIndex; linepos++)
attrs[linepos] = (uint)TokenColor.Text;
for (; linepos <= tokenInfo.EndIndex; linepos++)
attrs[linepos] = (uint)tokenInfo.Color;
}
}
}
catch (Exception)
{
// Ignore exceptions
}
}
if (attrs != null)
{
// Must initialize the colors in all cases, otherwise you get
// random color junk on the screen.
for (; linepos < length; linepos++)
attrs[linepos] = (uint)TokenColor.Text;
}
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.