Event TextEditor.Highlight (gb.form.editor)

Event Highlight ( Text As String )

This event is raised when a text line must be highlighted.

  • Text if the text to highlight.

This event is only raised when the Highlight property is set to "custom", "none" or a null string.

How to highlight?

Custom highlighting of the give text line is done by using the static methods of the TextHighlighter class of the gb.eval.highlight component.

The State and Tag properties represent the state of the highlighter.

They are initialized with the final state of the highlighter at the previous line, or with zero if we are highlighting the first line.

The highlight itself is done by calling the TextHighlighter.Add method repeatedly to give a style constant to each character of the line until everything is highlighted.

Finally the state properties must be filled with the final state of the highlighter after the current line has been highlighted.

Example

Here is the highlighting of the diff command output.

Public Sub Editor_Highlight(Text As String)
  
  If Text Begins "<<<<<<" Then 
    TextHighlighter.Add(Highlight.Custom, String.Len(Text))
    TextHighlighter.State = Highlight.Custom
  Else If Text Begins "======" Then
    TextHighlighter.Add(Highlight.Comment, String.Len(Text))
    TextHighlighter.State = Highlight.Normal
    TextHighlighter.Tag = 1
  Else If Text Begins ">>>>>>" Then
    TextHighlighter.Add(Highlight.Custom + 1, String.Len(Text))
    TextHighlighter.State = Highlight.Custom + 1
    TextHighlighter.Tag = 2
  Else
    If TextHighlighter.Tag = 1 Then 
      TextHighlighter.State = Highlight.Custom + 1
      TextHighlighter.Tag = 0
    Else If TextHighlighter.Tag = 2 Then 
      TextHighlighter.State = Highlight.Normal
      TextHighlighter.Tag = 0
    Endif
    
    TextHighlighter.Add(TextHighlighter.State, String.Len(Text))
    
  Endif
  
End