diff --git a/aider/args.py b/aider/args.py index ab88f2e90..cdcf8531d 100644 --- a/aider/args.py +++ b/aider/args.py @@ -337,6 +337,30 @@ def get_parser(default_config_files, git_root): default="#0088ff", help="Set the color for assistant output (default: #0088ff)", ) + group.add_argument( + "--completion-menu-color", + metavar="COLOR", + default="default", + help="Set the color for the completion menu (default: terminal's default text color)", + ) + group.add_argument( + "--completion-menu-bg-color", + metavar="COLOR", + default="default", + help="Set the background color for the completion menu (default: terminal's default background color)", + ) + group.add_argument( + "--completion-menu-current-color", + metavar="COLOR", + default="default", + help="Set the color for the current item in the completion menu (default: terminal's default background color)", + ) + group.add_argument( + "--completion-menu-current-bg-color", + metavar="COLOR", + default="default", + help="Set the background color for the current item in the completion menu (default: terminal's default text color)", + ) group.add_argument( "--code-theme", default="default", diff --git a/aider/io.py b/aider/io.py index c12f78ecc..43eda3595 100644 --- a/aider/io.py +++ b/aider/io.py @@ -180,6 +180,10 @@ class InputOutput: tool_error_color="red", tool_warning_color="#FFA500", assistant_output_color="blue", + completion_menu_color="default", + completion_menu_bg_color="default", + completion_menu_current_color="default", + completion_menu_current_bg_color="default", code_theme="default", encoding="utf-8", dry_run=False, @@ -196,6 +200,11 @@ class InputOutput: self.tool_error_color = tool_error_color if pretty else None self.tool_warning_color = tool_warning_color if pretty else None self.assistant_output_color = assistant_output_color + self.completion_menu_color = completion_menu_color if pretty else None + self.completion_menu_bg_color = completion_menu_bg_color if pretty else None + self.completion_menu_current_color = completion_menu_current_color if pretty else None + self.completion_menu_current_bg_color = completion_menu_current_bg_color if pretty else None + self.code_theme = code_theme self.input = input @@ -322,6 +331,8 @@ class InputOutput: { "": self.user_input_color, "pygments.literal.string": f"bold italic {self.user_input_color}", + "completion-menu": f"bg:{self.completion_menu_bg_color} {self.completion_menu_color}", + "completion-menu.completion.current": f"bg:{self.completion_menu_current_bg_color} {self.completion_menu_current_color}", } ) else: @@ -466,7 +477,11 @@ class InputOutput: self.tool_output(subject, bold=True) if self.pretty and self.user_input_color: - style = {"": self.user_input_color} + style = { + "": self.user_input_color, + "completion-menu": f"bg:{self.completion_menu_bg_color} {self.completion_menu_color}", + "completion-menu.completion.current": f"bg:{self.completion_menu_current_bg_color} {self.completion_menu_current_color}", + } else: style = dict() diff --git a/aider/main.py b/aider/main.py index 6c45c3373..e27948f43 100644 --- a/aider/main.py +++ b/aider/main.py @@ -413,6 +413,10 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F user_input_color=args.user_input_color, tool_output_color=args.tool_output_color, tool_error_color=args.tool_error_color, + completion_menu_color=args.completion_menu_color, + completion_menu_bg_color=args.completion_menu_bg_color, + completion_menu_current_color=args.completion_menu_current_color, + completion_menu_current_bg_color=args.completion_menu_current_bg_color, assistant_output_color=args.assistant_output_color, code_theme=args.code_theme, dry_run=args.dry_run, diff --git a/aider/website/assets/sample.env b/aider/website/assets/sample.env index c9c851bf1..d963eec32 100644 --- a/aider/website/assets/sample.env +++ b/aider/website/assets/sample.env @@ -165,6 +165,18 @@ ## Set the color for assistant output (default: #0088ff) #AIDER_ASSISTANT_OUTPUT_COLOR=#0088ff +## Set the foreground color for the completion menu (default: terminal's default text color) +#AIDER_COMPLETION_MENU_COLOR=default + +## Set the background color for the completion menu (default: terminal's default background color) +#AIDER_COMPLETION_MENU_BG_COLOR=default + +## Set the foreground color for the current item in the completion menu (default: terminal's default background color) +#AIDER_COMPLETION_MENU_CURRENT_COLOR=default + +## Set the background color for the current item in the completion menu (default: terminal's default text color) +#AIDER_COMPLETION_MENU_CURRENT_BG_COLOR=default + ## Set the markdown code theme (default: default, other options include monokai, solarized-dark, solarized-light) #AIDER_CODE_THEME=default