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.
kickstart.nvim/lua/custom/plugins/copilot.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,
},
}