Class StyleResolver

java.lang.Object
org.jline.utils.StyleResolver
Direct Known Subclasses:
StyleResolver

public class StyleResolver extends Object
Resolves named styles and style expressions into AttributedStyle objects.

The StyleResolver class provides functionality for resolving style specifications into AttributedStyle objects. It supports a rich expression language for defining styles, including named colors, RGB values, and various text attributes.

Style specifications can include:

  • Named colors (e.g., "red", "blue", "bright-green")
  • RGB color values (e.g., "#ff0000", "rgb:ff/00/00")
  • Text attributes (e.g., "bold", "underline", "italic")
  • Compound styles with foreground and background (e.g., "red,bold,bg:blue")
  • References to styles defined elsewhere (e.g., "${named.style}")

This class is used throughout JLine for resolving style specifications in configuration files, command-line options, and programmatic style definitions. It provides a consistent way to define and apply styles across different components.

The resolver can be configured with a source function that looks up named styles, allowing for hierarchical style definitions and style inheritance.

Since:
3.6
  • Constructor Details

  • Method Details

    • resolve

      public AttributedStyle resolve(String spec)
      Resolve the given style specification.

      If for some reason the specification is invalid, then AttributedStyle.DEFAULT will be used.

      Parameters:
      spec - the specification
      Returns:
      the style
    • resolve

      public AttributedStyle resolve(String spec, String defaultSpec)
      Resolve the given style specification.

      If this resolves to AttributedStyle.DEFAULT then given default specification is used if non-null.

      Parameters:
      spec - the specification
      defaultSpec - the default specifiaction
      Returns:
      the style