Package org.jline.builtins
Class SyntaxHighlighter
- java.lang.Object
-
- org.jline.builtins.SyntaxHighlighter
-
public class SyntaxHighlighter extends java.lang.ObjectJava implementation of a syntax highlighter based on nanorc format.This class provides syntax highlighting capabilities for JLine applications, using configuration files in a format similar to GNU nano's nanorc files. It supports:
- Regular expression based highlighting rules
- Theme-based styling
- File type detection
- Inclusion of other configuration files
The highlighter can be used to add syntax coloring to various text displays in terminal applications, such as file viewers, editors, and REPLs.
- Author:
- Matti Rinta-Nikkola
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classSyntaxHighlighter.RuleSplitter
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.StringCOMMAND_INCLUDEprotected static java.lang.StringCOMMAND_THEMEprotected static java.lang.StringDEFAULT_LESSRC_FILEstatic java.lang.StringDEFAULT_NANORC_FILEstatic java.lang.StringREGEX_TOKEN_NAMEstatic java.lang.StringTYPE_NANORCTHEME
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static voidaddFiles(java.nio.file.Path nanorc, java.lang.String parameter, java.util.function.Consumer<java.util.stream.Stream<java.nio.file.Path>> consumer)static SyntaxHighlighterbuild(java.lang.String nanorcUrl)Build SyntaxHighlighterstatic SyntaxHighlighterbuild(java.nio.file.Path nanorc, java.lang.String syntaxName)Build SyntaxHighlighterprotected static SyntaxHighlighterbuild(java.util.List<java.nio.file.Path> syntaxFiles, java.lang.String file, java.lang.String syntaxName)protected static SyntaxHighlighterbuild(java.util.List<java.nio.file.Path> syntaxFiles, java.lang.String file, java.lang.String syntaxName, boolean ignoreErrors)java.nio.file.PathgetCurrentTheme()AttributedStringhighlight(java.lang.String string)AttributedStringhighlight(AttributedString attributedString)AttributedStringhighlight(AttributedStringBuilder asb)protected static voidnanorcInclude(java.nio.file.Path nanorc, java.lang.String parameter, java.util.List<java.nio.file.Path> syntaxFiles)protected static voidnanorcTheme(java.nio.file.Path nanorc, java.lang.String parameter, java.util.List<java.nio.file.Path> syntaxFiles)voidrefresh()SyntaxHighlighterreset()voidsetCurrentTheme(java.nio.file.Path currentTheme)voidsetParser(org.jline.builtins.SyntaxHighlighter.Parser parser)
-
-
-
Field Detail
-
REGEX_TOKEN_NAME
public static final java.lang.String REGEX_TOKEN_NAME
- See Also:
- Constant Field Values
-
TYPE_NANORCTHEME
public static final java.lang.String TYPE_NANORCTHEME
- See Also:
- Constant Field Values
-
DEFAULT_NANORC_FILE
public static final java.lang.String DEFAULT_NANORC_FILE
- See Also:
- Constant Field Values
-
DEFAULT_LESSRC_FILE
protected static final java.lang.String DEFAULT_LESSRC_FILE
- See Also:
- Constant Field Values
-
COMMAND_INCLUDE
protected static final java.lang.String COMMAND_INCLUDE
- See Also:
- Constant Field Values
-
COMMAND_THEME
protected static final java.lang.String COMMAND_THEME
- See Also:
- Constant Field Values
-
-
Method Detail
-
build
protected static SyntaxHighlighter build(java.util.List<java.nio.file.Path> syntaxFiles, java.lang.String file, java.lang.String syntaxName)
-
build
protected static SyntaxHighlighter build(java.util.List<java.nio.file.Path> syntaxFiles, java.lang.String file, java.lang.String syntaxName, boolean ignoreErrors)
-
build
public static SyntaxHighlighter build(java.nio.file.Path nanorc, java.lang.String syntaxName)
Build SyntaxHighlighter- Parameters:
nanorc- Path of nano config file jnanorcsyntaxName- syntax name e.g 'Java'- Returns:
- SyntaxHighlighter
-
nanorcInclude
protected static void nanorcInclude(java.nio.file.Path nanorc, java.lang.String parameter, java.util.List<java.nio.file.Path> syntaxFiles) throws java.io.IOException- Throws:
java.io.IOException
-
nanorcTheme
protected static void nanorcTheme(java.nio.file.Path nanorc, java.lang.String parameter, java.util.List<java.nio.file.Path> syntaxFiles) throws java.io.IOException- Throws:
java.io.IOException
-
addFiles
protected static void addFiles(java.nio.file.Path nanorc, java.lang.String parameter, java.util.function.Consumer<java.util.stream.Stream<java.nio.file.Path>> consumer) throws java.io.IOException- Throws:
java.io.IOException
-
build
public static SyntaxHighlighter build(java.lang.String nanorcUrl)
Build SyntaxHighlighterThis method builds a SyntaxHighlighter from a URL or classpath resource. The URL can be a file URL, an HTTP URL, or a classpath resource URL.
For classpath resources, use the "classpath:" prefix followed by the resource path. For example: "classpath:/nano/jnanorc"
- Parameters:
nanorcUrl- URL or classpath resource path of nanorc file- Returns:
- SyntaxHighlighter
-
setCurrentTheme
public void setCurrentTheme(java.nio.file.Path currentTheme)
-
getCurrentTheme
public java.nio.file.Path getCurrentTheme()
-
setParser
public void setParser(org.jline.builtins.SyntaxHighlighter.Parser parser)
-
reset
public SyntaxHighlighter reset()
-
refresh
public void refresh()
-
highlight
public AttributedString highlight(java.lang.String string)
-
highlight
public AttributedString highlight(AttributedStringBuilder asb)
-
highlight
public AttributedString highlight(AttributedString attributedString)
-
-