mirror of
https://github.com/Aider-AI/aider.git
synced 2025-06-01 10:14:59 +00:00
Merge branch 'main' into issue-73
This commit is contained in:
commit
1f83a89192
5 changed files with 44 additions and 13 deletions
|
@ -3,6 +3,10 @@
|
|||
### Next release
|
||||
|
||||
- Added `--dark-mode` to select colors suitable for a dark terminal background
|
||||
- Reorganized the `--help` output
|
||||
- Bugfix so that aider throws an exception when OpenAI returns InvalidRequest
|
||||
- Bugfix/improvement to /add and /drop to recurse selected directories
|
||||
- Bugfix for live diff output when using "whole" edit format
|
||||
|
||||
### v0.8.2
|
||||
|
||||
|
|
|
@ -176,4 +176,8 @@ This minimizes your use of the context window, as well as costs.
|
|||
* "Aider ... has easily quadrupled my coding productivity." -- [SOLAR_FIELDS](https://news.ycombinator.com/item?id=36212100)
|
||||
* "What an amazing tool. It's incredible." -- [valyagolev](https://github.com/paul-gauthier/aider/issues/6#issue-1722897858)
|
||||
* "It was WAY faster than I would be getting off the ground and making the first few working versions." -- [Daniel Feldman](https://twitter.com/d_feldman/status/1662295077387923456)
|
||||
* "Amazing project, definitely the best AI coding assistant I've used." -- [joshuavial](https://github.com/paul-gauthier/aider/issues/84)
|
||||
|
||||
## FAQ
|
||||
|
||||
For more information, see the [FAQ](https://aider.chat/docs/faq.html).
|
||||
|
|
|
@ -58,7 +58,7 @@ class WholeFileCoder(Coder):
|
|||
full_path = (Path(self.root) / fname).absolute()
|
||||
|
||||
if mode == "diff":
|
||||
output += self.do_live_diff(full_path, new_lines)
|
||||
output += self.do_live_diff(full_path, new_lines, True)
|
||||
else:
|
||||
edits.append((fname, fname_source, new_lines))
|
||||
|
||||
|
@ -105,7 +105,7 @@ class WholeFileCoder(Coder):
|
|||
if fname is not None:
|
||||
# ending an existing block
|
||||
full_path = (Path(self.root) / fname).absolute()
|
||||
output += self.do_live_diff(full_path, new_lines)
|
||||
output += self.do_live_diff(full_path, new_lines, False)
|
||||
return "\n".join(output)
|
||||
|
||||
if fname:
|
||||
|
@ -128,14 +128,14 @@ class WholeFileCoder(Coder):
|
|||
|
||||
return edited
|
||||
|
||||
def do_live_diff(self, full_path, new_lines):
|
||||
def do_live_diff(self, full_path, new_lines, final):
|
||||
if full_path.exists():
|
||||
orig_lines = self.io.read_text(full_path).splitlines(keepends=True)
|
||||
|
||||
show_diff = diffs.diff_partial_update(
|
||||
orig_lines,
|
||||
new_lines,
|
||||
final=True,
|
||||
final=final,
|
||||
).splitlines()
|
||||
output = show_diff
|
||||
else:
|
||||
|
|
12
docs/faq.md
12
docs/faq.md
|
@ -6,8 +6,8 @@
|
|||
Aider does not officially support use with LLMs other than OpenAI's gpt-3.5-turbo and gpt-4
|
||||
and their variants.
|
||||
|
||||
It generally requires some model-specific tuning to get prompts and
|
||||
editing formats working well. For example, GPT-3.5 and GPT-4 use very
|
||||
It seems to require model-specific tuning to get prompts and
|
||||
editing formats working well with a new model. For example, GPT-3.5 and GPT-4 use very
|
||||
different prompts and editing formats in aider right now.
|
||||
Adopting new LLMs will probably require a similar effort to tailor the
|
||||
prompting and edit formats.
|
||||
|
@ -16,11 +16,13 @@ That said, aider does provide some features to experiment with other models.
|
|||
If you can make the model accessible via an OpenAI compatible API,
|
||||
you can use `--openai-api-base` to connect to a different API endpoint.
|
||||
|
||||
Here is are some
|
||||
Here are some
|
||||
[GitHub issues which may contain relevant information](https://github.com/paul-gauthier/aider/issues?q=is%3Aissue+%22openai-api-base%22+).
|
||||
|
||||
[LocalAI](https://github.com/go-skynet/LocalAI)
|
||||
looks like a relevant tool to serve many local models via a compatible API:
|
||||
and
|
||||
[SimpleAI](https://github.com/lhenault/simpleAI)
|
||||
look like relevant tools to serve local models via a compatible API:
|
||||
|
||||
|
||||
## Can I change the system prompts that aider uses?
|
||||
|
@ -49,6 +51,8 @@ has provided this
|
|||
## How do I get ctags working?
|
||||
|
||||
First, be aware that ctags is completely optional and not required to use aider.
|
||||
Aider only attempts to use ctags with GPT-4,
|
||||
and currently doesn't use ctags with GPT-3.5.
|
||||
|
||||
If you wish to use ctags, you should consult the
|
||||
[universal ctags repo](https://github.com/universal-ctags/ctags)
|
||||
|
|
|
@ -8,6 +8,7 @@ from unittest.mock import MagicMock, patch
|
|||
from aider import models
|
||||
from aider.coders import Coder
|
||||
from aider.coders.wholefile_coder import WholeFileCoder
|
||||
from aider.dump import dump # noqa: F401
|
||||
from aider.io import InputOutput
|
||||
|
||||
|
||||
|
@ -76,6 +77,24 @@ class TestWholeFileCoder(unittest.TestCase):
|
|||
updated_content = f.read()
|
||||
self.assertEqual(updated_content, "Updated content\n")
|
||||
|
||||
def test_update_files_live_diff(self):
|
||||
# Create a sample file in the temporary directory
|
||||
sample_file = "sample.txt"
|
||||
with open(sample_file, "w") as f:
|
||||
f.write("\n".join(map(str, range(0, 100))))
|
||||
|
||||
# Initialize WholeFileCoder with the temporary directory
|
||||
io = InputOutput(yes=True)
|
||||
coder = WholeFileCoder(main_model=models.GPT35, io=io, fnames=[sample_file])
|
||||
|
||||
# Set the partial response content with the updated content
|
||||
coder.partial_response_content = f"{sample_file}\n```\n0\n\1\n2\n"
|
||||
|
||||
lines = coder.update_files(mode="diff").splitlines()
|
||||
|
||||
# the live diff should be concise, since we haven't changed anything yet
|
||||
self.assertLess(len(lines), 20)
|
||||
|
||||
def test_update_files_with_existing_fence(self):
|
||||
# Create a sample file in the temporary directory
|
||||
sample_file = "sample.txt"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue