Class TailTipWidgets

java.lang.Object
org.jline.widget.Widgets
org.jline.widget.TailTipWidgets

public class TailTipWidgets extends Widgets
Creates and manages widgets for as-you-type command line suggestions.

TailTipWidgets provides real-time command line suggestions as the user types, based on command completer data and/or positional argument descriptions. These suggestions are displayed in the terminal's status bar, helping users understand the available options and arguments for commands.

The widgets can be configured to use different suggestion types and display styles, and can be bound to key sequences for manual invocation.

  • Field Details

    • enabled

      private boolean enabled
    • cmdDescs

      private final TailTipWidgets.CommandDescriptions cmdDescs
    • tipType

      private TailTipWidgets.TipType tipType
    • descriptionSize

      private int descriptionSize
    • descriptionEnabled

      private boolean descriptionEnabled
    • descriptionCache

      private boolean descriptionCache
    • readerErrors

      private Object readerErrors
  • Constructor Details

    • TailTipWidgets

      public TailTipWidgets(LineReader reader, Map<String,CmdDesc> tailTips)
      Creates tailtip widgets used in command line suggestions.

      This constructor creates widgets that use both positional argument descriptions and completer data for suggestions (TipType.COMBINED). If argument descriptions don't exist, command completer data will be used. No status bar for argument descriptions will be created (descriptionSize = 0).

      Parameters:
      reader - the LineReader instance to associate with these widgets
      tailTips - a map of command names to their descriptions, containing options and positional argument information
      Throws:
      IllegalStateException - if widgets are already created for the LineReader
    • TailTipWidgets

      public TailTipWidgets(LineReader reader, Map<String,CmdDesc> tailTips, TailTipWidgets.TipType tipType)
      Creates tailtip widgets used in command line suggestions with a specific tip type.

      This constructor allows specifying which data source to use for suggestions (positional argument descriptions, completer data, or both). No status bar for argument descriptions will be created (descriptionSize = 0).

      Parameters:
      reader - the LineReader instance to associate with these widgets
      tailTips - a map of command names to their descriptions, containing options and positional argument information
      tipType - defines which data will be used for suggestions (TAIL_TIP, COMPLETER, or COMBINED)
      Throws:
      IllegalStateException - if widgets are already created for the LineReader
    • TailTipWidgets

      public TailTipWidgets(LineReader reader, Map<String,CmdDesc> tailTips, int descriptionSize)
      Creates tailtip widgets used in command line suggestions with a status bar.

      This constructor creates widgets that use both positional argument descriptions and completer data for suggestions (TipType.COMBINED). If argument descriptions don't exist, command completer data will be used. A status bar for argument descriptions will be created with the specified size.

      Parameters:
      reader - the LineReader instance to associate with these widgets
      tailTips - a map of command names to their descriptions, containing options and positional argument information
      descriptionSize - the size of the status bar for displaying argument descriptions (0 for no status bar)
      Throws:
      IllegalStateException - if widgets are already created for the LineReader
    • TailTipWidgets

      public TailTipWidgets(LineReader reader, Map<String,CmdDesc> tailTips, int descriptionSize, TailTipWidgets.TipType tipType)
      Creates tailtip widgets used in command line suggestions with a status bar and specific tip type.

      This constructor allows full customization of the widgets, specifying both the status bar size and which data source to use for suggestions (positional argument descriptions, completer data, or both).

      Parameters:
      reader - the LineReader instance to associate with these widgets
      tailTips - a map of command names to their descriptions, containing options and positional argument information
      descriptionSize - the size of the status bar for displaying argument descriptions (0 for no status bar)
      tipType - defines which data will be used for suggestions (TAIL_TIP, COMPLETER, or COMBINED)
      Throws:
      IllegalStateException - if widgets are already created for the LineReader
    • TailTipWidgets

      public TailTipWidgets(LineReader reader, Function<CmdLine,CmdDesc> descFun, int descriptionSize, TailTipWidgets.TipType tipType)
      Creates tailtip widgets used in command line suggestions.
      Parameters:
      reader - LineReader.
      descFun - Function that returns command description.
      descriptionSize - Size of the status bar.
      tipType - Defines which data will be used for suggestions.
      Throws:
      IllegalStateException - If widgets are already created.
    • TailTipWidgets

      private TailTipWidgets(LineReader reader, Map<String,CmdDesc> tailTips, int descriptionSize, TailTipWidgets.TipType tipType, Function<CmdLine,CmdDesc> descFun)
  • Method Details

    • setTailTips

      public void setTailTips(Map<String,CmdDesc> tailTips)
    • setDescriptionSize

      public void setDescriptionSize(int descriptionSize)
    • getDescriptionSize

      public int getDescriptionSize()
    • setTipType

      public void setTipType(TailTipWidgets.TipType type)
    • getTipType

      public TailTipWidgets.TipType getTipType()
    • isEnabled

      public boolean isEnabled()
    • disable

      public void disable()
    • enable

      public void enable()
    • setDescriptionCache

      public void setDescriptionCache(boolean cache)
    • tailtipComplete

      public boolean tailtipComplete()
    • tailtipAcceptLine

      public boolean tailtipAcceptLine()
    • tailtipBackwardDelete

      public boolean tailtipBackwardDelete()
    • clearTailTip

      private boolean clearTailTip(String widget)
    • tailtipDelete

      public boolean tailtipDelete()
    • tailtipKillLine

      public boolean tailtipKillLine()
    • tailtipKillWholeLine

      public boolean tailtipKillWholeLine()
    • tailtipInsert

      public boolean tailtipInsert()
    • tailtipUpdateStatus

      public boolean tailtipUpdateStatus()
    • doTailTip

      private boolean doTailTip(String widget)
    • doCommandTailTip

      private void doCommandTailTip(String widget, CmdDesc cmdDesc, List<String> args)
    • resetTailTip

      private void resetTailTip()
    • doDescription

      private void doDescription(List<AttributedString> desc)
    • initDescription

      public void initDescription()
      Initialize terminal status bar
    • clearDescription

      public void clearDescription()
      Description copied from class: Widgets
      Clears terminal status bar
      Overrides:
      clearDescription in class Widgets
    • autopairEnabled

      private boolean autopairEnabled()
    • toggleWindow

      public boolean toggleWindow()
    • toggleKeyBindings

      public boolean toggleKeyBindings()
    • defaultBindings

      private boolean defaultBindings()
    • customBindings

      private void customBindings()
    • compileMainDescription

      private List<AttributedString> compileMainDescription(CmdDesc cmdDesc, int descriptionSize)
    • compileMainDescription

      private List<AttributedString> compileMainDescription(CmdDesc cmdDesc, int descriptionSize, String lastArg)
    • compileOptionDescription

      private List<AttributedString> compileOptionDescription(CmdDesc cmdDesc, String opt, int descriptionSize)