kickstart.nvim/lua/custom/plugins/copilot.lua

97 lines
2.6 KiB
Lua

return {
'zbirenbaum/copilot.lua',
enabled = true,
event = 'InsertEnter',
requires = {
'copilotlsp/copilot-lsp.nvim',
},
config = function()
require('copilot').setup {
panel = {
enabled = true,
auto_refresh = true,
keymap = {
jump_prev = '[[',
jump_next = ']]',
accept = '<CR>',
refresh = 'gr',
open = '<M-CR>',
},
layout = {
position = 'right', -- | top | left | right | bottom |
ratio = 0.4,
},
},
suggestion = {
enabled = true,
auto_trigger = true,
hide_during_completion = true,
debounce = 100,
trigger_on_accept = false,
keymap = {
accept = '<M-l>',
accept_word = false,
accept_line = false,
next = '<M-]>',
prev = '<M-[>',
dismiss = '<C-]>',
},
},
filetypes = {
yaml = false,
markdown = false,
help = false,
gitcommit = true,
gitrebase = true,
hgcommit = false,
svn = false,
cvs = false,
['.'] = false,
},
nes = {
enabled = false, -- requires copilot-lsp as a dependency
auto_trigger = false,
keymap = {
accept_and_goto = false,
accept = false,
dismiss = false,
},
},
auth_provider_url = nil, -- URL to authentication provider, if not "https://github.com/"
logger = {
file = vim.fn.stdpath 'log' .. '/copilot-lua.log',
file_log_level = vim.log.levels.OFF,
print_log_level = vim.log.levels.WARN,
trace_lsp = 'off', -- "off" | "messages" | "verbose"
trace_lsp_progress = false,
log_lsp_messages = false,
},
copilot_node_command = 'node', -- Node.js version must be > 20
workspace_folders = {},
copilot_model = '',
root_dir = function()
return vim.fs.dirname(vim.fs.find('.git', { upward = true })[1])
end,
should_attach = function(_, _)
local logger = require 'copilot.logger'
if not vim.bo.buflisted then
logger.debug "not attaching, buffer is not 'buflisted'"
return false
end
if vim.bo.buftype ~= '' then
logger.debug("not attaching, buffer 'buftype' is " .. vim.bo.buftype)
return false
end
return true
end,
server = {
type = 'nodejs', -- "nodejs" | "binary"
custom_server_filepath = nil,
},
server_opts_overrides = {},
}
end,
}