cmd2.styles
cmd2.styles
Defines custom Rich styles and their corresponding names for cmd2.
This module provides a centralized and discoverable way to manage Rich styles used within the cmd2 framework. It defines a StrEnum for style names and a dictionary that maps these names to their default style objects.
Notes
Cmd2 uses Rich for its terminal output, and while this module defines a set of cmd2-specific styles, it's important to understand that these aren't the only styles that can appear. Components like Rich tracebacks and the rich-argparse library, which cmd2 uses for its help output, also apply their own built-in styles. Additionally, app developers may use other Rich objects that have their own default styles.
For a complete theming experience, you can create a custom theme that includes
styles from Rich and rich-argparse. The cmd2.theme.update_theme() function
automatically updates rich-argparse's styles with any custom styles provided in
your theme dictionary, so you don't have to modify them directly.
You can find Rich's default styles in the rich.default_styles module.
For rich-argparse, the style names are defined in the
rich_argparse.RichHelpFormatter.styles dictionary.
For prompt-toolkit default styles, see: https://github.com/prompt-toolkit/python-prompt-toolkit/blob/main/src/prompt_toolkit/styles/defaults.py
DEFAULT_CMD2_STYLES
module-attribute
DEFAULT_CMD2_STYLES = {
Cmd2Style.COMMAND_LINE: Style(
color=Color.CYAN, bold=True
),
Cmd2Style.COMPLETION_MENU: Style(
color="#000000", bgcolor="#bbbbbb"
),
Cmd2Style.COMPLETION_MENU_COMPLETION: Style(),
Cmd2Style.COMPLETION_MENU_CURRENT: Style(
color=Color.GREEN, bgcolor=Color.BLACK
),
Cmd2Style.COMPLETION_MENU_META: Style(
color="#000000", bgcolor="#bbbbbb"
),
Cmd2Style.COMPLETION_MENU_META_CURRENT: Style(
color=Color.BLACK, bgcolor=Color.BRIGHT_GREEN
),
Cmd2Style.ERROR: Style(color=Color.BRIGHT_RED),
Cmd2Style.HELP_HEADER: Style(color=Color.BRIGHT_GREEN),
Cmd2Style.HELP_LEADER: Style(color=Color.CYAN),
Cmd2Style.LEXER_COMMAND: Style(color=Color.GREEN),
Cmd2Style.LEXER_ALIAS: Style(color=Color.CYAN),
Cmd2Style.LEXER_MACRO: Style(color=Color.MAGENTA),
Cmd2Style.LEXER_FLAG: Style(color=Color.RED),
Cmd2Style.LEXER_ARGUMENT: Style(color=Color.YELLOW),
Cmd2Style.SUCCESS: Style(color=Color.GREEN),
Cmd2Style.TABLE_BORDER: Style(color=Color.BRIGHT_GREEN),
Cmd2Style.WARNING: Style(color=Color.BRIGHT_YELLOW),
}
Cmd2Style
Bases: StrEnum
An enumeration of the names of custom Rich styles used in cmd2.
Using this enum allows for autocompletion and prevents typos when referencing cmd2-specific styles.
This StrEnum is tightly coupled with DEFAULT_CMD2_STYLES. Any name
added here must have a corresponding style definition there.