You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
2.2 KiB
Lua
90 lines
2.2 KiB
Lua
local on_attach = function(on_attach, name)
|
|
return vim.api.nvim_create_autocmd('LspAttach', {
|
|
callback = function(args)
|
|
local buffer = args.buf ---@type number
|
|
local client = vim.lsp.get_client_by_id(args.data.client_id)
|
|
if client and (not name or client.name == name) then
|
|
return on_attach(client, buffer)
|
|
end
|
|
end,
|
|
})
|
|
end
|
|
|
|
return {
|
|
{
|
|
'CopilotC-Nvim/CopilotChat.nvim',
|
|
branch = 'canary',
|
|
dependencies = {
|
|
{ 'zbirenbaum/copilot.lua' }, -- or github/copilot.vim
|
|
{ 'nvim-lua/plenary.nvim' }, -- for curl, log wrapper
|
|
},
|
|
build = 'make tiktoken', -- Only on MacOS or Linux
|
|
opts = {
|
|
debug = true, -- Enable debugging
|
|
context = 'buffer',
|
|
},
|
|
keys = {
|
|
{
|
|
'<leader>aa',
|
|
function()
|
|
local chat = require 'CopilotChat'
|
|
chat.toggle()
|
|
end,
|
|
desc = 'Copilot toggle chat',
|
|
},
|
|
{
|
|
'<leader>aq',
|
|
function()
|
|
local input = vim.fn.input 'Quick Chat: '
|
|
if input ~= '' then
|
|
require('CopilotChat').ask(input, { selection = require('CopilotChat.select').buffer })
|
|
end
|
|
end,
|
|
desc = 'Copilot quick chat',
|
|
},
|
|
{
|
|
'<leader>ax',
|
|
function()
|
|
local chat = require 'CopilotChat'
|
|
chat.reset()
|
|
end,
|
|
desc = 'Copilot chat reset',
|
|
},
|
|
{
|
|
'<leader>ap',
|
|
function()
|
|
local actions = require 'CopilotChat.actions'
|
|
require('CopilotChat.integrations.telescope').pick(actions.prompt_actions())
|
|
end,
|
|
desc = 'Copilot chat prompt actions',
|
|
},
|
|
},
|
|
},
|
|
{
|
|
'zbirenbaum/copilot.lua',
|
|
cmd = 'Copilot',
|
|
event = 'InsertEnter',
|
|
build = ':Copilot auth',
|
|
opts = {
|
|
-- suggestion = { enabled = false },
|
|
-- panel = { enabled = false },
|
|
filetypes = {
|
|
markdown = true,
|
|
help = true,
|
|
},
|
|
},
|
|
},
|
|
{
|
|
'zbirenbaum/copilot-cmp',
|
|
dependencies = 'copilot.lua',
|
|
opts = {},
|
|
config = function(_, opts)
|
|
local copilot_cmp = require 'copilot_cmp'
|
|
copilot_cmp.setup(opts)
|
|
on_attach(function(client)
|
|
copilot_cmp._on_insert_enter {}
|
|
end, 'copilot')
|
|
end,
|
|
},
|
|
}
|