]> git.eshelyaron.com Git - emacs.git/commitdiff
Add custom variable completions-highlight-autoselect.
authorJimmy Aguilar Mena <spacibba@aol.com>
Mon, 16 Nov 2020 10:01:11 +0000 (11:01 +0100)
committerJimmy Aguilar Mena <spacibba@aol.com>
Fri, 20 Nov 2020 18:03:23 +0000 (19:03 +0100)
* lisp/completions-highlight.el (completions-highlight-autoselect) : New
custom.
(completions-highlight-setup) : Auto selects the first candidate when
completions-highlight-autoselect is non nil.

lisp/completions-highlight.el

index e675a72095d5f1e480a7e433b3537544d1914506..78017f9662a9452cdcffed43ba091f7bdf3894bb 100644 (file)
 (require 'simple)
 (require 'minibuffer)
 
+(defcustom completions-highlight-autoselect nil
+  "Select first candidate without extra tab.
+
+When this variable is nil an extra tab is required to select and
+highlight the first candidate in the *Completions* buffer.  When
+the value is non-nil the candidate is selected every time the
+buffer is shown and updated."
+  :type 'boolean
+  :group 'completion
+  :version "28.1")
+
 (defvar completions-highlight-overlay (make-overlay 0 0)
   "Overlay to use when `completion-highlight-mode' is enabled.")
 
@@ -267,7 +278,12 @@ It is called when showing the *Completions* buffer."
 
       ;; Add completions-highlight-completions-map to *Completions*
       (use-local-map (make-composed-keymap
-                      completions-highlight-completions-map (current-local-map)))))
+                      completions-highlight-completions-map (current-local-map)))
+
+      ;; Autoselect candidate if enabled
+      (when completions-highlight-autoselect
+        (with-selected-window (get-buffer-window (current-buffer) 0)
+          (completions-highlight-next-completion 1)))))
 
   (add-hook 'pre-command-hook
            #'completions-highlight-minibuffer-pre-command-hook nil t)