Class SyntaxHighlighter


  • public class SyntaxHighlighter
    extends java.lang.Object
    Java 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
    • 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 jnanorc
        syntaxName - 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 SyntaxHighlighter

        This 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)
      • refresh

        public void refresh()