CopilotC-Nvim / CopilotChat.nvim

Chat with GitHub Copilot in Neovim
https://copilotc-nvim.github.io/CopilotChat.nvim/
GNU General Public License v3.0
1.5k stars 69 forks source link

Custom Chat participants (formerly agents) such as @workspace #311

Closed DRKolev-code closed 4 months ago

DRKolev-code commented 4 months ago

Are there plans to let us create custom Chat Participants (plugins) in the same vein as @buffer and @buffers? If so would it be feasible to enable them, via a similar mechanism as cmp, as a list of repositories?

Overview: https://code.visualstudio.com/api/extension-guides/chat VSCode Presentation: https://youtu.be/7PtNKleyHNk?t=1502

deathbeam commented 4 months ago

I think in this plugin scope it would be custom conext function I think? Even though custom selector also already can be used for same thing. I personally think the nvim-cmp "extension" system is terrible so I would def not want to go that route. For custom selector you can pass custom selection already as function, and I think for context we could do the same.

DRKolev-code commented 4 months ago

I think so too. Being able to specify custom contexts would fit. Something like:

contexts = {
  new_context = {
    -- Maybe it can receive the selection and if there is a parameter in the prompts section, for each prompt, to specify the context for that prompt, it could auto pass the selection the the context's callback function.
    callback =  function(selection) {...},
    -- If the code is online
    url = "",
    description = "",
  }
}

Would a rename to participants be a good idea? Maybe the prompts should have a context/participant field to indicate which to use.