Skip to content

Instantly share code, notes, and snippets.

@timcharper
Last active February 5, 2024 09:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save timcharper/e95b6de243607ffd7985923334e1b31a to your computer and use it in GitHub Desktop.
Save timcharper/e95b6de243607ffd7985923334e1b31a to your computer and use it in GitHub Desktop.
(defun insert-hello ()
(interactive)
(insert "hello"))
;; Define a function to cancel the keymap override
(defun cancel-override ()
(interactive)
;; Remove the override from `minor-mode-overriding-map-alist`
(setq minor-mode-overriding-map-alist
(assq-delete-all 'copilot-mode minor-mode-overriding-map-alist)))
;; Create and populate the new keymap
(defvar my-override-keymap (let ((map (make-sparse-keymap)))
(define-key map (kbd "h") 'insert-hello)
(define-key map (kbd "j") 'cancel-override)
map)
"Keymap for temporarily overriding `copilot-mode'.")
;; Function to activate the keymap override
(defun activate-my-override ()
(interactive)
(make-local-variable 'minor-mode-overriding-map-alist)
(let ((override-entry (assq #'copilot-mode minor-mode-overriding-map-alist))
(composed-keymap (make-composed-keymap my-override-keymap copilot-mode-map)))
(if override-entry
(setcdr override-entry composed-keymap)
(push (cons #'copilot-mode composed-keymap)
minor-mode-overriding-map-alist))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment