Example Input
languages: Python, JavaScript, Go
workflow_preferences: Heavy use of splits, prefer minimal UI, use telescope for file navigation
experience_level: Intermediate Neovim user, new to Copilot
pain_points: Copilot suggestions interfere with nvim-cmp, want faster accept/reject keybindings
Example Output
## 1. CONFIGURATION ANALYSIS
Based on your multi-language setup and minimal UI preference, I'll configure Copilot to work harmoniously with nvim-cmp while providing efficient keybindings that don't conflict with telescope workflows. The configuration will prioritize language-specific optimizations for Python, JavaScript, and Go.
## 2. LUA CONFIGURATION CODE
```lua
-- ~/.config/nvim/lua/copilot-config.lua
local copilot = require('copilot')
local suggestion = require('copilot.suggestion')
-- Initialize Copilot with custom settings
copilot.setup({
suggestion = {
enabled = true,
auto_trigger = true,
debounce = 75,
keymap = {
accept = false, -- We'll set custom keymaps
accept_word = false,
accept_line = false,
next = false,
prev = false,
dismiss = false,
},
},
filetypes = {
python = true,
javascript = true,
go = true,
["*"] = false, -- Disable for other filetypes
},
})
-- Custom keybindings
vim.keymap.set('i', '<C-l>', function()
if suggestion.is_visible() then
suggestion.accept()
end
end, { desc = 'Accept Copilot suggestion' })
vim.keymap.set('i', '<C-;>', function()
if suggestion.is_visible() then
suggestion.accept_word()
end
end, { desc = 'Accept Copilot word' })
```
## 3. KEYBINDING STRATEGY
The `<C-l>` binding leverages your right pinky for quick acceptance without interfering with telescope's `<C-p>/<C-n>` navigation. `<C-;>` provides partial acceptance for iterative coding. These bindings avoid conflicts with split navigation (`<C-w>` sequences) and maintain your minimal UI workflow.
## 4. WORKFLOW INTEGRATION
To prevent nvim-cmp conflicts, configure completion priority and integrate with your telescope workflow through filetype-specific triggers that activate only in relevant contexts.
## 5. TROUBLESHOOTING & OPTIMIZATION
Monitor completion latency with `:Copilot status` and adjust debounce timing for optimal responsiveness across your three primary languages.