Class InfoCmp


  • public final class InfoCmp
    extends java.lang.Object
    Utility class for terminal capability handling and terminfo database access.

    The InfoCmp class provides utilities for working with terminal capabilities and accessing the terminfo database. It includes functionality for parsing terminfo entries, accessing capability values, and formatting capability strings with parameters.

    Terminal capabilities are properties that describe what a terminal can do, such as moving the cursor, changing colors, or clearing the screen. These capabilities are typically stored in a terminfo database and are accessed by terminal type (e.g., "xterm", "vt100").

    This class defines three types of capabilities:

    • Boolean capabilities - Indicate whether a terminal supports a feature
    • Numeric capabilities - Provide numeric values for terminal properties
    • String capabilities - Define escape sequences for terminal operations

    The class is named after the "infocmp" utility found in Unix-like systems, which is used to compare or print terminfo descriptions. It provides similar functionality for accessing and comparing terminal capabilities in Java.

    This class is used extensively throughout JLine to determine terminal capabilities and generate appropriate escape sequences for terminal operations.

    • Method Detail

      • getCapabilitiesByName

        public static java.util.Map<java.lang.String,​InfoCmp.Capability> getCapabilitiesByName()
      • setDefaultInfoCmp

        public static void setDefaultInfoCmp​(java.lang.String terminal,
                                             java.lang.String caps)
      • setDefaultInfoCmp

        public static void setDefaultInfoCmp​(java.lang.String terminal,
                                             java.util.function.Supplier<java.lang.String> caps)
      • getDefaultInfoCmp

        public static java.lang.String getDefaultInfoCmp​(java.lang.String terminal)
      • setLoadedInfoCmp

        public static void setLoadedInfoCmp​(java.lang.String terminal,
                                            java.lang.String caps)
      • setLoadedInfoCmp

        public static void setLoadedInfoCmp​(java.lang.String terminal,
                                            java.util.function.Supplier<java.lang.String> caps)
      • getLoadedInfoCmp

        public static java.lang.String getLoadedInfoCmp​(java.lang.String terminal)
      • getInfoCmp

        public static java.lang.String getInfoCmp​(java.lang.String terminal)
                                           throws java.io.IOException,
                                                  java.lang.InterruptedException
        Throws:
        java.io.IOException
        java.lang.InterruptedException