@@ -119,7 +119,14 @@ local function reset_ctx(ctx)
119119 ctx .accepted_partial = nil
120120end
121121
122- local function set_keymap (keymap )
122+ --- @param bufnr integer
123+ function M .set_keymap (bufnr )
124+ if not config .suggestion .enabled then
125+ return
126+ end
127+
128+ local keymap = config .suggestion .keymap or {}
129+
123130 keymaps .register_keymap_with_passthrough (" i" , keymap .accept , function ()
124131 local ctx = get_ctx ()
125132 if (config .suggestion .trigger_on_accept and not ctx .first ) or M .is_visible () then
@@ -128,12 +135,12 @@ local function set_keymap(keymap)
128135 end
129136
130137 return false
131- end , " [copilot] accept suggestion" )
138+ end , " [copilot] accept suggestion" , bufnr )
132139
133- keymaps .register_keymap (" i" , keymap .accept_word , M .accept_word , " [copilot] accept suggestion (word)" )
134- keymaps .register_keymap (" i" , keymap .accept_line , M .accept_line , " [copilot] accept suggestion (line)" )
135- keymaps .register_keymap (" i" , keymap .next , M .next , " [copilot] next suggestion" )
136- keymaps .register_keymap (" i" , keymap .prev , M .prev , " [copilot] prev suggestion" )
140+ keymaps .register_keymap (" i" , keymap .accept_word , M .accept_word , " [copilot] accept suggestion (word)" , bufnr )
141+ keymaps .register_keymap (" i" , keymap .accept_line , M .accept_line , " [copilot] accept suggestion (line)" , bufnr )
142+ keymaps .register_keymap (" i" , keymap .next , M .next , " [copilot] next suggestion" , bufnr )
143+ keymaps .register_keymap (" i" , keymap .prev , M .prev , " [copilot] prev suggestion" , bufnr )
137144
138145 keymaps .register_keymap_with_passthrough (" i" , keymap .dismiss , function ()
139146 if M .is_visible () then
@@ -142,16 +149,22 @@ local function set_keymap(keymap)
142149 end
143150
144151 return false
145- end , " [copilot] dismiss suggestion" )
152+ end , " [copilot] dismiss suggestion" , bufnr )
146153end
147154
148- local function unset_keymap (keymap )
149- keymaps .unset_keymap_if_exists (" i" , keymap .accept )
150- keymaps .unset_keymap_if_exists (" i" , keymap .accept_word )
151- keymaps .unset_keymap_if_exists (" i" , keymap .accept_line )
152- keymaps .unset_keymap_if_exists (" i" , keymap .next )
153- keymaps .unset_keymap_if_exists (" i" , keymap .prev )
154- keymaps .unset_keymap_if_exists (" i" , keymap .dismiss )
155+ --- @param bufnr integer
156+ function M .unset_keymap (bufnr )
157+ if not config .suggestion .enabled then
158+ return
159+ end
160+
161+ local keymap = config .suggestion .keymap or {}
162+ keymaps .unset_keymap_if_exists (" i" , keymap .accept , bufnr )
163+ keymaps .unset_keymap_if_exists (" i" , keymap .accept_word , bufnr )
164+ keymaps .unset_keymap_if_exists (" i" , keymap .accept_line , bufnr )
165+ keymaps .unset_keymap_if_exists (" i" , keymap .next , bufnr )
166+ keymaps .unset_keymap_if_exists (" i" , keymap .prev , bufnr )
167+ keymaps .unset_keymap_if_exists (" i" , keymap .dismiss , bufnr )
155168end
156169
157170local function stop_timer ()
@@ -839,8 +852,6 @@ function M.setup()
839852 return
840853 end
841854
842- set_keymap (opts .keymap or {})
843-
844855 copilot .auto_trigger = opts .auto_trigger
845856 copilot .hide_during_completion = opts .hide_during_completion
846857
@@ -860,10 +871,7 @@ function M.teardown()
860871 return
861872 end
862873
863- unset_keymap (opts .keymap or {})
864-
865874 vim .api .nvim_clear_autocmds ({ group = copilot .augroup })
866-
867875 copilot .setup_done = false
868876end
869877
0 commit comments