From 25288728970368663a1343f73cf79453e4aa9968 Mon Sep 17 00:00:00 2001 From: Matteo Landi Date: Thu, 8 May 2025 17:01:04 +0200 Subject: [PATCH 1/5] First stab --- aider/args.py | 5 +++++ aider/io.py | 28 +++++++++++++++++----------- aider/main.py | 1 + aider/website/docs/config/dotenv.md | 3 +++ 4 files changed, 26 insertions(+), 11 deletions(-) diff --git a/aider/args.py b/aider/args.py index 08c9bde76..9e816f0ce 100644 --- a/aider/args.py +++ b/aider/args.py @@ -327,6 +327,11 @@ def get_parser(default_config_files, git_root): default="#00cc00", help="Set the color for user input (default: #00cc00)", ) + group.add_argument( + "--user-submitted-input-color", + default=None, + help="Set the color for user submitted input (default: #00cc00)", + ) group.add_argument( "--tool-output-color", default=None, diff --git a/aider/io.py b/aider/io.py index f28a1c86d..00df9ff3f 100644 --- a/aider/io.py +++ b/aider/io.py @@ -243,6 +243,7 @@ class InputOutput: input=None, output=None, user_input_color="blue", + user_submitted_input_color=None, tool_output_color=None, tool_error_color="red", tool_warning_color="#FFA500", @@ -281,6 +282,9 @@ class InputOutput: pretty = False self.user_input_color = ensure_hash_prefix(user_input_color) if pretty else None + self.user_submitted_input_color = ( + ensure_hash_prefix(user_submitted_input_color) if pretty else None + ) self.tool_output_color = ensure_hash_prefix(tool_output_color) if pretty else None self.tool_error_color = ensure_hash_prefix(tool_error_color) if pretty else None self.tool_warning_color = ensure_hash_prefix(tool_warning_color) if pretty else None @@ -343,6 +347,7 @@ class InputOutput: "output": self.output, "lexer": PygmentsLexer(MarkdownLexer), "editing_mode": self.editingmode, + "erase_when_done": True, } if self.editingmode == EditingMode.VI: session_kwargs["cursor"] = ModalCursorShapeConfig() @@ -369,6 +374,7 @@ class InputOutput: """Validate configured color strings and reset invalid ones.""" color_attributes = [ "user_input_color", + "user_submitted_input_color", "tool_output_color", "tool_error_color", "tool_warning_color", @@ -501,11 +507,11 @@ class InputOutput: raise def rule(self): - if self.pretty: - style = dict(style=self.user_input_color) if self.user_input_color else dict() - self.console.rule(**style) - else: - print() + if not self.pretty: + return "\n" + + columns = self.console.width + return "\n".join(["─" * columns, ""]) def interrupt_input(self): if self.prompt_session and self.prompt_session.app: @@ -523,18 +529,16 @@ class InputOutput: abs_read_only_fnames=None, edit_format=None, ): - self.rule() - # Ring the bell if needed self.ring_bell() rel_fnames = list(rel_fnames) - show = "" + show = self.rule() if rel_fnames: rel_read_only_fnames = [ get_rel_fname(fname, root) for fname in (abs_read_only_fnames or []) ] - show = self.format_files_for_input(rel_fnames, rel_read_only_fnames) + show += self.format_files_for_input(rel_fnames, rel_read_only_fnames) prompt_prefix = "" if edit_format: @@ -658,6 +662,7 @@ class InputOutput: complete_while_typing=True, prompt_continuation=get_continuation, ) + self.display_user_input(show + line) else: line = input(show) @@ -754,8 +759,8 @@ class InputOutput: log_file.write(content + "\n") def display_user_input(self, inp): - if self.pretty and self.user_input_color: - style = dict(style=self.user_input_color) + if self.pretty and self.user_submitted_input_color: + style = dict(style=self.user_submitted_input_color) else: style = dict() @@ -868,6 +873,7 @@ class InputOutput: style=style, complete_while_typing=False, ) + self.display_user_input(question + res) else: res = input(question) except EOFError: diff --git a/aider/main.py b/aider/main.py index ea344f0ba..8a666d37a 100644 --- a/aider/main.py +++ b/aider/main.py @@ -557,6 +557,7 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F input=input, output=output, user_input_color=args.user_input_color, + user_submitted_input_color=args.user_submitted_input_color, tool_output_color=args.tool_output_color, tool_warning_color=args.tool_warning_color, tool_error_color=args.tool_error_color, diff --git a/aider/website/docs/config/dotenv.md b/aider/website/docs/config/dotenv.md index 82ad974de..0856f40d1 100644 --- a/aider/website/docs/config/dotenv.md +++ b/aider/website/docs/config/dotenv.md @@ -202,6 +202,9 @@ cog.outl("```") ## Set the color for user input (default: #00cc00) #AIDER_USER_INPUT_COLOR=#00cc00 +## Set the color for user submitted input (default: None) +#AIDER_USER_SUBMITTED_INPUT_COLOR= + ## Set the color for tool output (default: None) #AIDER_TOOL_OUTPUT_COLOR= From a9150eb9a0f25bb2a8f579273791a83a90aeeb76 Mon Sep 17 00:00:00 2001 From: Matteo Landi Date: Sun, 18 May 2025 15:40:55 +0200 Subject: [PATCH 2/5] Add new setting to yaml --- aider/website/assets/sample.aider.conf.yml | 3 +++ aider/website/docs/config/options.md | 12 ++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/aider/website/assets/sample.aider.conf.yml b/aider/website/assets/sample.aider.conf.yml index 7fe9459bf..737ca9e54 100644 --- a/aider/website/assets/sample.aider.conf.yml +++ b/aider/website/assets/sample.aider.conf.yml @@ -173,6 +173,9 @@ ## Set the color for user input (default: #00cc00) #user-input-color: "#00cc00" +## Set the color for user submitted input (default: None) +#user-submitted-input-color: "#00cc00" + ## Set the color for tool output (default: None) #tool-output-color: "xxx" diff --git a/aider/website/docs/config/options.md b/aider/website/docs/config/options.md index 368c4ec7e..3dd5e4494 100644 --- a/aider/website/docs/config/options.md +++ b/aider/website/docs/config/options.md @@ -42,10 +42,10 @@ usage: aider [-h] [--model] [--openai-api-key] [--anthropic-api-key] [--restore-chat-history | --no-restore-chat-history] [--llm-history-file] [--dark-mode] [--light-mode] [--pretty | --no-pretty] [--stream | --no-stream] - [--user-input-color] [--tool-output-color] - [--tool-error-color] [--tool-warning-color] - [--assistant-output-color] [--completion-menu-color] - [--completion-menu-bg-color] + [--user-input-color] [--user-submitted-input-color] + [--tool-output-color] [--tool-error-color] + [--tool-warning-color] [--assistant-output-color] + [--completion-menu-color] [--completion-menu-bg-color] [--completion-menu-current-color] [--completion-menu-current-bg-color] [--code-theme] [--show-diffs] [--git | --no-git] @@ -325,6 +325,10 @@ Set the color for user input (default: #00cc00) Default: #00cc00 Environment variable: `AIDER_USER_INPUT_COLOR` +### `--user-submitted-input-color VALUE` +Set the color for user submitted input (default: #00cc00) +Environment variable: `AIDER_USER_SUBMITTED_INPUT_COLOR` + ### `--tool-output-color VALUE` Set the color for tool output (default: None) Environment variable: `AIDER_TOOL_OUTPUT_COLOR` From 40d278771a2865ff71d6ae53210c3ad82e503c62 Mon Sep 17 00:00:00 2001 From: "Matteo Landi (aider)" Date: Sun, 18 May 2025 16:19:11 +0200 Subject: [PATCH 3/5] refactor: Rename user submitted input color option --- aider/website/docs/config/options.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/aider/website/docs/config/options.md b/aider/website/docs/config/options.md index 3dd5e4494..b1a0648e9 100644 --- a/aider/website/docs/config/options.md +++ b/aider/website/docs/config/options.md @@ -42,7 +42,7 @@ usage: aider [-h] [--model] [--openai-api-key] [--anthropic-api-key] [--restore-chat-history | --no-restore-chat-history] [--llm-history-file] [--dark-mode] [--light-mode] [--pretty | --no-pretty] [--stream | --no-stream] - [--user-input-color] [--user-submitted-input-color] + [--user-input-color] [--user-input-submitted-color] [--tool-output-color] [--tool-error-color] [--tool-warning-color] [--assistant-output-color] [--completion-menu-color] [--completion-menu-bg-color] @@ -325,9 +325,9 @@ Set the color for user input (default: #00cc00) Default: #00cc00 Environment variable: `AIDER_USER_INPUT_COLOR` -### `--user-submitted-input-color VALUE` +### `--user-input-submitted-color VALUE` Set the color for user submitted input (default: #00cc00) -Environment variable: `AIDER_USER_SUBMITTED_INPUT_COLOR` +Environment variable: `AIDER_USER_INPUT_SUBMITTED_COLOR` ### `--tool-output-color VALUE` Set the color for tool output (default: None) From a26ab12b2c780b6c4b911a9c4c2f2b77af2d7a0a Mon Sep 17 00:00:00 2001 From: "Matteo Landi (aider)" Date: Sun, 18 May 2025 16:23:11 +0200 Subject: [PATCH 4/5] refactor: Rename user-submitted-input-color to user-input-submitted-color --- aider/args.py | 2 +- aider/io.py | 12 ++++++------ aider/main.py | 2 +- aider/website/assets/sample.aider.conf.yml | 4 ++-- aider/website/docs/config/dotenv.md | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/aider/args.py b/aider/args.py index 9e816f0ce..27d4f6c6e 100644 --- a/aider/args.py +++ b/aider/args.py @@ -328,7 +328,7 @@ def get_parser(default_config_files, git_root): help="Set the color for user input (default: #00cc00)", ) group.add_argument( - "--user-submitted-input-color", + "--user-input-submitted-color", default=None, help="Set the color for user submitted input (default: #00cc00)", ) diff --git a/aider/io.py b/aider/io.py index 00df9ff3f..3a54c4766 100644 --- a/aider/io.py +++ b/aider/io.py @@ -243,7 +243,7 @@ class InputOutput: input=None, output=None, user_input_color="blue", - user_submitted_input_color=None, + user_input_submitted_color=None, tool_output_color=None, tool_error_color="red", tool_warning_color="#FFA500", @@ -282,8 +282,8 @@ class InputOutput: pretty = False self.user_input_color = ensure_hash_prefix(user_input_color) if pretty else None - self.user_submitted_input_color = ( - ensure_hash_prefix(user_submitted_input_color) if pretty else None + self.user_input_submitted_color = ( + ensure_hash_prefix(user_input_submitted_color) if pretty else None ) self.tool_output_color = ensure_hash_prefix(tool_output_color) if pretty else None self.tool_error_color = ensure_hash_prefix(tool_error_color) if pretty else None @@ -374,7 +374,7 @@ class InputOutput: """Validate configured color strings and reset invalid ones.""" color_attributes = [ "user_input_color", - "user_submitted_input_color", + "user_input_submitted_color", "tool_output_color", "tool_error_color", "tool_warning_color", @@ -759,8 +759,8 @@ class InputOutput: log_file.write(content + "\n") def display_user_input(self, inp): - if self.pretty and self.user_submitted_input_color: - style = dict(style=self.user_submitted_input_color) + if self.pretty and self.user_input_submitted_color: + style = dict(style=self.user_input_submitted_color) else: style = dict() diff --git a/aider/main.py b/aider/main.py index 8a666d37a..6dc70522f 100644 --- a/aider/main.py +++ b/aider/main.py @@ -557,7 +557,7 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F input=input, output=output, user_input_color=args.user_input_color, - user_submitted_input_color=args.user_submitted_input_color, + user_input_submitted_color=args.user_input_submitted_color, tool_output_color=args.tool_output_color, tool_warning_color=args.tool_warning_color, tool_error_color=args.tool_error_color, diff --git a/aider/website/assets/sample.aider.conf.yml b/aider/website/assets/sample.aider.conf.yml index 737ca9e54..39264a6d8 100644 --- a/aider/website/assets/sample.aider.conf.yml +++ b/aider/website/assets/sample.aider.conf.yml @@ -173,8 +173,8 @@ ## Set the color for user input (default: #00cc00) #user-input-color: "#00cc00" -## Set the color for user submitted input (default: None) -#user-submitted-input-color: "#00cc00" +## Set the color for user submitted input (default: #00cc00) +#user-input-submitted-color: "#00cc00" ## Set the color for tool output (default: None) #tool-output-color: "xxx" diff --git a/aider/website/docs/config/dotenv.md b/aider/website/docs/config/dotenv.md index 0856f40d1..3eee3df8d 100644 --- a/aider/website/docs/config/dotenv.md +++ b/aider/website/docs/config/dotenv.md @@ -202,8 +202,8 @@ cog.outl("```") ## Set the color for user input (default: #00cc00) #AIDER_USER_INPUT_COLOR=#00cc00 -## Set the color for user submitted input (default: None) -#AIDER_USER_SUBMITTED_INPUT_COLOR= +## Set the color for user submitted input (default: #00cc00) +#AIDER_USER_INPUT_SUBMITTED_COLOR= ## Set the color for tool output (default: None) #AIDER_TOOL_OUTPUT_COLOR= From b8e46f2d04d66b744eae89c2a1820c2c1a4cb3d1 Mon Sep 17 00:00:00 2001 From: Matteo Landi Date: Mon, 19 May 2025 09:42:45 +0200 Subject: [PATCH 5/5] Update new setting default value --- aider/website/assets/sample.aider.conf.yml | 4 ++-- aider/website/docs/config/options.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/aider/website/assets/sample.aider.conf.yml b/aider/website/assets/sample.aider.conf.yml index 39264a6d8..e4fbe9620 100644 --- a/aider/website/assets/sample.aider.conf.yml +++ b/aider/website/assets/sample.aider.conf.yml @@ -173,8 +173,8 @@ ## Set the color for user input (default: #00cc00) #user-input-color: "#00cc00" -## Set the color for user submitted input (default: #00cc00) -#user-input-submitted-color: "#00cc00" +## Set the color for user submitted input (default: None) +#user-input-submitted-color: "xxx" ## Set the color for tool output (default: None) #tool-output-color: "xxx" diff --git a/aider/website/docs/config/options.md b/aider/website/docs/config/options.md index b1a0648e9..164fedbee 100644 --- a/aider/website/docs/config/options.md +++ b/aider/website/docs/config/options.md @@ -326,7 +326,7 @@ Default: #00cc00 Environment variable: `AIDER_USER_INPUT_COLOR` ### `--user-input-submitted-color VALUE` -Set the color for user submitted input (default: #00cc00) +Set the color for user submitted input (default: None) Environment variable: `AIDER_USER_INPUT_SUBMITTED_COLOR` ### `--tool-output-color VALUE`