From 500dbaeff25fb5f5db88e86d5c9c29adc2357d2e Mon Sep 17 00:00:00 2001 From: Frank Fischer Date: Tue, 9 Sep 2014 04:22:46 +0400 Subject: [PATCH] company-complete-number: Make interactive, read the pressed digit Fixes #177. --- company.el | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/company.el b/company.el index f9f4b7492..505cc82c6 100644 --- a/company.el +++ b/company.el @@ -627,12 +627,8 @@ asynchronous call into synchronous.") (define-key keymap "\C-s" 'company-search-candidates) (define-key keymap "\C-\M-s" 'company-filter-candidates) (dotimes (i 10) - (define-key keymap (vector (+ (aref (kbd "M-0") 0) i)) - `(lambda () - (interactive) - (company-complete-number ,(if (zerop i) 10 i))))) - - keymap) + (define-key keymap (kbd (format "M-%d" i)) 'company-complete-number)) + keymap) "Keymap that is enabled during an active completion.") (defvar company--disabled-backends nil) @@ -1857,7 +1853,11 @@ inserted." (defun company-complete-number (n) "Insert the Nth candidate. To show the number next to the candidates in some back-ends, enable -`company-show-numbers'." +`company-show-numbers'. When called interactively, uses the last typed +character, stripping the modifiers. That character must be a digit." + (interactive + (list (let ((n (- (event-basic-type last-command-event) ?0))) + (if (zerop n) 10 n)))) (when (company-manual-begin) (and (or (< n 1) (> n company-candidates-length)) (error "No candidate number %d" n)) -- 2.39.2