branch: externals/company commit 2cca48a061049db737ce7793630c799cfd02b077 Merge: 4ce6c58 7c34ee0 Author: Dmitry Gutov <dgu...@yandex.ru> Commit: GitHub <nore...@github.com>
Merge pull request #1098 from company-mode/default-bindings-change Change default bindings to use C-n/C-p --- NEWS.md | 15 +++++++++++++++ company.el | 29 +++++++++++++++++++++++++---- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/NEWS.md b/NEWS.md index 7d1d9ee..69ebd83 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,6 +2,21 @@ ## Next +* Default key bindings have been changed, moving `company-select-next` and + `company-select-previous` from `M-n` and `M-p` to `C-n` and `C-p` + ([#1098](https://github.com/company-mode/company-mode/pull/1098)). The + previous bindings still work, but show a warning and will be disabled soon. To + undo that change locally, do: + +```el +(with-eval-after-load 'company + (dolist (map (list company-active-map company-search-map)) + (define-key map (kbd "C-n") nil) + (define-key map (kbd "C-p") nil) + (define-key map (kbd "M-n") #'company-select-next) + (define-key map (kbd "M-p") #'company-select-previous))) +``` + * New user option `company-files-chop-trailing-slash` ([#1042](https://github.com/company-mode/company-mode/issues/1042)). * Improved visual responsiveness with async backends diff --git a/company.el b/company.el index 1d5fd62..89b9165 100644 --- a/company.el +++ b/company.el @@ -700,8 +700,10 @@ asynchronous call into synchronous.") (let ((keymap (make-sparse-keymap))) (define-key keymap "\e\e\e" 'company-abort) (define-key keymap "\C-g" 'company-abort) - (define-key keymap (kbd "M-n") 'company-select-next) - (define-key keymap (kbd "M-p") 'company-select-previous) + (define-key keymap (kbd "M-n") 'company--select-next-and-warn) + (define-key keymap (kbd "M-p") 'company--select-previous-and-warn) + (define-key keymap (kbd "C-n") 'company-select-next) + (define-key keymap (kbd "C-p") 'company-select-previous) (define-key keymap (kbd "<down>") 'company-select-next-or-abort) (define-key keymap (kbd "<up>") 'company-select-previous-or-abort) (define-key keymap [remap scroll-up-command] 'company-next-page) @@ -728,6 +730,23 @@ asynchronous call into synchronous.") (defvar company--disabled-backends nil) +(defun company--select-next-and-warn (&optional arg) + (interactive "p") + (company--warn-changed-binding) + (company-select-next arg)) + +(defun company--select-previous-and-warn (&optional arg) + (interactive "p") + (company--warn-changed-binding) + (company-select-previous arg)) + +(defun company--warn-changed-binding () + (interactive) + (run-with-idle-timer + 0.01 nil + (lambda () + (message "Warning: default bindings are being changed to C-n and C-p")))) + (defun company-init-backend (backend) (and (symbolp backend) (not (fboundp backend)) @@ -2245,8 +2264,10 @@ each one wraps a part of the input string." (define-key keymap (char-to-string meta-prefix-char) meta-map) (define-key keymap [escape] meta-map)) (define-key keymap (vector meta-prefix-char t) 'company-search-other-char) - (define-key keymap (kbd "M-n") 'company-select-next) - (define-key keymap (kbd "M-p") 'company-select-previous) + (define-key keymap (kbd "C-n") 'company-select-next) + (define-key keymap (kbd "C-p") 'company-select-previous) + (define-key keymap (kbd "M-n") 'company--select-next-and-warn) + (define-key keymap (kbd "M-p") 'company--select-previous-and-warn) (define-key keymap (kbd "<down>") 'company-select-next-or-abort) (define-key keymap (kbd "<up>") 'company-select-previous-or-abort) (define-key keymap "\e\e\e" 'company-search-other-char)