paul-gauthier / aider

aider is AI pair programming in your terminal
https://aider.chat/
Apache License 2.0
19.32k stars 1.78k forks source link

Feature request: "/save" and "/load" the workspace file list; store the state in .aider.edit.md and .aider.readonly.md #1619

Open jerzydziewierz opened 6 days ago

jerzydziewierz commented 6 days ago

Issue

I find myself frequently restarting aider with needing to load the same files using /add and /read e.t.c. ;

may I suggest a new RPN-like commands to save/load the work-file-list from a local on-disk memory e.g. .aider.files.md

loading these from a config file is not applicable because this list will evolve as you progress with a project.

Version and model info

Aider version: 0.56.0 Python version: 3.10.14 Platform: Linux-6.8.0-40-generic-x86_64-with-glibc2.35 Python implementation: CPython Virtual environment: No OS: Linux 6.8.0-40-generic (64bit) Git version: git version 2.34.1

Aider v0.56.0 Main model: claude-3-5-sonnet-20240620 with diff edit format, infinite output Weak model: claude-3-haiku-20240307 Git repo: .git with 97 files

fry69 commented 6 days ago

Thank you for filing this issue.

An alternative way to specify files you need frequently is via command line ->

aider --read CONVENTIONS.md app/*.py

or via a .aider.conf.yml file in your repository root (though you cannot use shell globs (*.py) there):

read: [CONVENTIONS.md, lib/util.py]
file: [app/frontend.py, app/server.py]

Either store these command lines in shell aliases or create different configuration files with different settings/files. You can specify a specific configuration file on the command line with --config <file>

This should give you options to preserve states/sets of files you regularly need and recall them on demand, if really needed. For even more advanced usage, have a look at the scripting support for aider:

https://aider.chat/docs/scripting.html

jerzydziewierz commented 6 days ago

Yes, well, I specifically want to avoid adding files from command line, because in a practical project, there are many of them, like 10+; and, the set changes over time

please see my proposal pull request:

PR#1620

I report that I have tried the .aider.conf.yml method and I found it cumbersome.