I'm struggeling with a problem concerning my neovim config.
I'm really struggeling and I think I must oversee something because the task can not be more easier.
Right now I'm struggeling to deactivate the Copilot suggestion with :Copilot disable. It will still give me suggestions.
I thank i maybe have to do, that I'm using copilot-chat as well as copilot for autocomplete.
copilot.lua
return {
"zbirenbaum/copilot.lua",
cmd = "Cpt",
event = "InsertEnter",
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 = "bottom", -- | top | left | right
ratio = 0.4
},
},
suggestion = {
enabled = true,
auto_trigger = true,
hide_during_completion = true,
debounce = 75,
keymap = {
accept = "<M-Right>",
accept_word = false,
accept_line = false,
next = "<M-]>",
prev = "<M-[>",
dismiss = "<M-Left>",
},
},
filetypes = {
yaml = false,
markdown = false,
help = false,
gitcommit = false,
gitrebase = false,
hgcommit = false,
svn = false,
cvs = false,
["."] = false,
},
copilot_node_command = 'node', -- Node.js version must be > 18.x
server_opts_overrides = {},
})
end,
}
copilot-chat.lua
return {
{
"CopilotC-Nvim/CopilotChat.nvim",
branch = "canary",
dependencies = {
{ "nvim-lua/plenary.nvim" }, -- for curl, log wrapper
{ "nvim-telescope/telescope.nvim" }, -- Use telescope for help actions
},
opts = {
debug = false, -- Enable debugging
show_help = true, -- Show help actions
window = {
layout = "vertical",
relative = "editor",
width = 0.4,
border = "single"
},
auto_follow_cursor = false, -- Don't follow the cursor after getting response
},
config = function(_, opts)
local chat = require("CopilotChat")
local select = require("CopilotChat.select")
-- Use unnamed register for the selection
opts.selection = select.unnamed
-- Override the git prompts message
--opts.prompts.Commit = {
-- prompt = "Write commit message for the change with commitizen convention",
-- selection = select.gitdiff,
--}
--opts.prompts.CommitStaged = {
-- prompt = "Write commit message for the change with commitizen convention",
-- selection = function(source)
-- return select.gitdiff(source, true)
-- end,
--}
chat.setup(opts)
vim.api.nvim_create_user_command("CopilotChatVisual", function(args)
chat.ask(args.args, { selection = select.visual })
end, { nargs = "*", range = true })
-- Inline chat with Copilot
vim.api.nvim_create_user_command("CopilotChatInline", function(args)
chat.ask(args.args, {
selection = select.visual,
window = {
layout = "vertical",
relative = "editor",
width = 0.4,
border = "single"
},
})
end, { nargs = "*", range = true })
-- Restore CopilotChatBuffer
vim.api.nvim_create_user_command("CopilotChatBuffer", function(args)
chat.ask(args.args, { selection = select.buffer })
end, { nargs = "*", range = true })
end,
event = "VeryLazy",
keys = {
-- Show prompts actions with telescope
{
"<leader>ccp",
function()
local actions = require("CopilotChat.actions")
require("CopilotChat.integrations.telescope").pick(actions.prompt_actions())
end,
desc = "CopilotChat - Prompt actions",
},
-- Code related commands
{ "<leader>cce", "<cmd>CopilotChatExplain<cr>", desc = "CopilotChat - Explain code" },
{ "<leader>cct", "<cmd>CopilotChatTests<cr>", desc = "CopilotChat - Generate tests" },
{ "<leader>ccr", "<cmd>CopilotChatReview<cr>", desc = "CopilotChat - Review code" },
{ "<leader>ccR", "<cmd>CopilotChatRefactor<cr>", desc = "CopilotChat - Refactor code" },
{ "<leader>ccn", "<cmd>CopilotChatBetterNamings<cr>", desc = "CopilotChat - Better Naming" },
-- Chat with Copilot in visual mode
{
"<leader>ccv",
":CopilotChatVisual<ENTER>",
mode = "x",
desc = "CopilotChat - Open in vertical split",
},
{
"<leader>ccx",
":CopilotChatInline<cr>",
mode = "x",
desc = "CopilotChat - Inline chat",
},
-- Custom input for CopilotChat
{
"<leader>cci",
function()
local input = vim.fn.input("Ask Copilot: ")
if input ~= "" then
vim.cmd("CopilotChat " .. input)
end
end,
desc = "CopilotChat - Ask input",
},
-- Generate commit message based on the git diff
{
"<leader>ccm",
"<cmd>CopilotChatCommit<cr>",
desc = "CopilotChat - Generate commit message for all changes",
},
{
"<leader>ccM",
"<cmd>CopilotChatCommitStaged<cr>",
desc = "CopilotChat - Generate commit message for staged changes",
},
-- Quick chat with Copilot
{
"<leader>ccq",
function()
local input = vim.fn.input("Quick Chat: ")
if input ~= "" then
vim.cmd("CopilotChatBuffer " .. input)
end
end,
desc = "CopilotChat - Quick chat",
},
-- Debug
{ "<leader>ccd", "<cmd>CopilotChatDebugInfo<cr>", desc = "CopilotChat - Debug Info" },
-- Fix the issue with diagnostic
{ "<leader>ccf", "<cmd>CopilotChatFixDiagnostic<cr>", desc = "CopilotChat - Fix Diagnostic" },
-- Clear buffer and chat history
{ "<leader>ccl", "<cmd>CopilotChatReset<cr>", desc = "CopilotChat - Clear buffer and chat history" },
-- Toggle Copilot Chat Vsplit
{ "<leader>ccv", "<cmd>CopilotChatToggle<cr>", desc = "CopilotChat - Toggle Vsplit" },
},
},
}
init.lua
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
require("vim-options")
require("keymaps")
require("lazy").setup({
spec = {
{ import = "plugins" }, -- loads all plugins in plugins/
},
defaults = {
lazy = false, -- plugins are not lazy loaded by default
},
})