选择提供哪些相关代码块作为 VS Code Github Copilot 的上下文

问题描述 投票:0回答:1

我在 VS Code 上使用 Github Copilot,版本 1.95 Oct 发布。

我一直想知道如何提供手动选择的文件和代码块上下文以在副驾驶聊天中询问。

基本上,我想要得到的效果是您从文件A复制代码块A,从文件B复制代码块B,从文件C复制代码块C,然后将它们粘贴到副驾驶聊天框中,然后继续提问。响应将非常集中于您提供的那些代码块。然而,这个过程非常繁琐,而且是动态的。您不想每次都将这些块粘贴到聊天中,即使我们只提取代码块,组合起来它也会变得相当大,占据您的聊天框的很大一部分。

如果您使用选择功能,它仅使用活动编辑器选项卡当前选定的代码块,如果您想在其他文件选项卡中包含其他选定的代码块,则此功能不起作用。

我尝试过的尝试:

  • 在正常聊天中,您可以将文件拖到副驾驶聊天框中,或单击“附加上下文”剪辑图标来选择要用作上下文的文件。但它也有一些缺点:

    • 您无法选择在每个文件中使用哪个代码块。如果文件很大,会提供很多不相关的信息
    • 一旦您发送聊天消息,之前选择的作为上下文的文件将被删除,这使得您要么必须重新选择文件,要么希望LLM的过去历史总结能力以某种方式捕获您想要询问的内容。如果有一个选项可以保存所选文件那就太好了
  • v1.95 中有一个新功能是

    copilot edits
    ,它允许您将我想要的文件选择到
    Working Set
    中,作为正常聊天中提供的上下文。然而,

    • 它直接修改你的代码,而我最希望它给我代码建议,我可以相应地查看、修改和添加。这里您需要打开差异检查器并手动选择要恢复哪些部分以及要保留哪些部分
    • 它仍然选择整个文件而不是代码块
  • @workspace 功能。它会查看您的整个代码库,进行一些语义搜索以根据您的问题查找相关文件,并使用这些文件以及可能相关的代码块来充当上下文,但是,

    • 我不希望它必须查看我的整个代码库。我想以自定义方式缩小其搜索空间,以便它可以准确地查明相关上下文
    • 您可以将所需的相关文件放入单独的文件夹中,然后在 VS Code 上打开此文件夹,使该文件夹的文件子集成为整个@workspace,以充当选择所需的相关文件。但是当你编辑代码时,你必须更新你的真实代码库和这个子集文件夹,这很不方便

总之,我想手动选择文件中的相关代码块,以立即作为副驾驶聊天的上下文。

visual-studio-code github github-copilot
1个回答
0
投票

理解你的问题,一个或多个文件上没有多选代码块,其背后的原因可能是这些LLM的输入是有限的,所有输入都应该被本身总结并映射减少到适当的小尺寸,随后使确保各代人都能顺利工作

您可以尝试一种解决方法,创建一个指令文件,您将输入持久文件名,其代码行(或相关函数名称)应重点关注,对于每个提示聊天,它将预加载并包含指令以获得更好的答案.

https://docs.github.com/en/copilot/customizing-copilot/adding-custom-instructions-for-github-copilot

© www.soinside.com 2019 - 2024. All rights reserved.