据我所知, aider CLI本身并不直接带有这样的考虑, 得自己拷贝粘贴过去, 像去问chatgpt问题一样.
aider.el的一个基本考虑是希望结合emacs lisp的编程能力把buffer里用户关心的context作为prompt的一部分发给aider, 减轻用户操作的负担. 有好几个命令都是考虑 当前函数, 或者选中代码的, 比如
-
询问问题: aider-ask-question: 在当前上下文中向Aider询问有关代码的问题。如果选择了一个区域,使用区域作为上下文。如果没有选定区域, 光标在某个函数里, 那么它会问关于那个函数的问题
-
修改代码 aider-function-or-region-refactor:如果选择了一个区域,辅助重构或者修改所选区域。否则,重构或者修改光标下所在函数
-
多行注释的in-place新代码生成 aider-implement-todo: 如果有多行注释的选择区域,要求在那个位置实现这些注释中描述需求的代码
-
单元测试相关功能
这些功能我自己都在用, 好使的. 它们也都在菜单里
这只是我有限的经验总结的想法 请大家多多提意见 谢谢
为了实现发送多行代码块到aider session的效果, 我的选择是在代码块前后加上{aider … aider} tag. 不然的话aider会把它们当成多行命令, 一行一行逐一执行. 这个实现比较安全, 目前还没翻车. 不过, 可能和有些同学交流的时候, 没太说清楚, 让他误会了.