Class SystemHighlighter

java.lang.Object
org.jline.reader.impl.DefaultHighlighter
org.jline.console.impl.SystemHighlighter
All Implemented Interfaces:
org.jline.reader.Highlighter

public class SystemHighlighter extends org.jline.reader.impl.DefaultHighlighter
Highlighter implementation that provides syntax highlighting for commands and languages.

SystemHighlighter extends DefaultHighlighter to provide syntax highlighting for:

  • Command syntax (command names, options, arguments)
  • Programming language syntax (for various languages)
  • File content based on file extensions

The highlighter uses nanorc syntax definitions for highlighting, making it compatible with existing nanorc configuration files. It can be customized with different styles and supports dynamic refreshing of highlighting rules.

  • Field Details

    • commandHighlighter

      protected final org.jline.builtins.SyntaxHighlighter commandHighlighter
    • argsHighlighter

      protected final org.jline.builtins.SyntaxHighlighter argsHighlighter
    • langHighlighter

      protected final org.jline.builtins.SyntaxHighlighter langHighlighter
    • systemRegistry

      protected final SystemRegistry systemRegistry
    • fileHighlight

      protected final Map<String,SystemHighlighter.FileHighlightCommand> fileHighlight
    • specificHighlighter

      protected final Map<String,org.jline.builtins.SyntaxHighlighter> specificHighlighter
    • commandIndex

      protected int commandIndex
  • Constructor Details

    • SystemHighlighter

      public SystemHighlighter(org.jline.builtins.SyntaxHighlighter commandHighlighter, org.jline.builtins.SyntaxHighlighter argsHighlighter, org.jline.builtins.SyntaxHighlighter langHighlighter)
  • Method Details

    • setSpecificHighlighter

      public void setSpecificHighlighter(String command, org.jline.builtins.SyntaxHighlighter highlighter)
    • refresh

      public void refresh(org.jline.reader.LineReader lineReader)
    • addExternalHighlighterRefresh

      public void addExternalHighlighterRefresh(Supplier<Boolean> refresh)
    • highlight

      public org.jline.utils.AttributedString highlight(org.jline.reader.LineReader reader, String buffer)
      Specified by:
      highlight in interface org.jline.reader.Highlighter
      Overrides:
      highlight in class org.jline.reader.impl.DefaultHighlighter
    • addFileHighlight

      public void addFileHighlight(String... commands)
    • addFileHighlight

      public void addFileHighlight(String command, String subcommand, Collection<String> fileOptions)
    • systemHighlight

      protected org.jline.utils.AttributedString systemHighlight(org.jline.reader.LineReader reader, String buffer)
    • doFileOptsHighlight

      protected org.jline.utils.AttributedString doFileOptsHighlight(org.jline.reader.LineReader reader, String buffer, List<String> words, SystemHighlighter.FileHighlightCommand fhc)
    • doFileArgsHighlight

      protected org.jline.utils.AttributedString doFileArgsHighlight(org.jline.reader.LineReader reader, String buffer, List<String> words, SystemHighlighter.FileHighlightCommand fhc)
    • doCommandHighlight

      protected org.jline.utils.AttributedString doCommandHighlight(String buffer)