diff --git a/aider/commands.py b/aider/commands.py index 60c0f317d..100bf3b65 100644 --- a/aider/commands.py +++ b/aider/commands.py @@ -639,6 +639,22 @@ class Commands: else: self.io.tool_output(f"{cmd} No description available.") + def get_help_md(self): + "Show help about all commands in markdown" + + res = "" + commands = sorted(self.get_commands()) + for cmd in commands: + cmd_method_name = f"cmd_{cmd[1:]}" + cmd_method = getattr(self, cmd_method_name, None) + if cmd_method: + description = cmd_method.__doc__ + res += f"- **{cmd}** {description}\n" + else: + res += f"- **{cmd}**\n" + + return res + def cmd_voice(self, args): "Record and transcribe voice input" @@ -702,3 +718,22 @@ def parse_quoted_filenames(args): filenames = re.findall(r"\"(.+?)\"|(\S+)", args) filenames = [name for sublist in filenames for name in sublist if name] return filenames + + +def get_help_md(): + from aider.coders import Coder + from aider.models import Model + + coder = Coder(Model("gpt-3.5-turbo"), None) + md = coder.commands.get_help_md() + return md + + +def main(): + md = get_help_md() + print(md) + + +if __name__ == "__main__": + status = main() + sys.exit(status) diff --git a/scripts/update-docs.sh b/scripts/update-docs.sh index b953936cf..8bd3cc8df 100755 --- a/scripts/update-docs.sh +++ b/scripts/update-docs.sh @@ -9,5 +9,7 @@ else ARG=$1 fi -cog $ARG website/index.md -cog $ARG website/docs/usage.md +cog $ARG \ + website/index.md \ + website/docs/usage.md \ + website/docs/commands.md \ diff --git a/website/docs/commands.md b/website/docs/commands.md index cb2bca30a..b306bcb6e 100644 --- a/website/docs/commands.md +++ b/website/docs/commands.md @@ -7,32 +7,31 @@ nav_order: 50 ## In-chat commands Aider supports commands from within the chat, which all start with `/`. -Here are some of the most useful in-chat commands: -- `/help`: Show help about all commands -- `/exit`: Exit the application - -## Context management - -- `/add `: Add matching files to the chat session using glob patterns -- `/drop `: Remove matching files from the chat session -- `/web `: Add the contents of a webpage to the chat -- `/clear`: Clear the chat history -- `/ls`: List all known files and those included in the chat session -- `/tokens`: Report on the number of tokens used by the current chat context - -## Git - -- `/undo`: Undo the last git commit if it was done by aider -- `/diff`: Display the diff of the last aider commit -- `/commit `: Commit edits to the repo made outside the chat (commit message optional) -- `/git `: Run a git command - -## Other - -- `/run `: Run a shell command and optionally add the output to the chat, or use `!`. -- `/test `: Like run, but automatically adds the output to the chat on non-zero exit codes. -- `/voice`: Speak to aider to [request code changes with your voice](https://aider.chat/docs/voice.html). + +- **/add** Add files to the chat so GPT can edit them or review them in detail +- **/clear** Clear the chat history +- **/commit** Commit edits to the repo made outside the chat (commit message optional) +- **/diff** Display the diff of the last aider commit +- **/drop** Remove files from the chat session to free up context space +- **/exit** Exit the application +- **/git** Run a git command +- **/help** Show help about all commands +- **/lint** Lint and fix provided files or in-chat files if none provided +- **/ls** List all known files and indicate which are included in the chat session +- **/model** Switch to a new LLM +- **/models** Search the list of available models +- **/quit** Exit the application +- **/run** Run a shell command and optionally add the output to the chat (alias: !) +- **/test** Run a shell command and add the output to the chat on non-zero exit code +- **/tokens** Report on the number of tokens used by the current chat context +- **/undo** Undo the last git commit if it was done by aider +- **/voice** Record and transcribe voice input +- **/web** Use headless selenium to scrape a webpage and add the content to the chat + # Keybindings