emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-26 400907b: Add option to disable help completion au


From: Noam Postavsky
Subject: [Emacs-diffs] emacs-26 400907b: Add option to disable help completion autoloading (Bug#28607)
Date: Tue, 21 May 2019 07:44:25 -0400 (EDT)

branch: emacs-26
commit 400907b3c1d94359dda38ad5f416829567d6e478
Author: Noam Postavsky <address@hidden>
Commit: Noam Postavsky <address@hidden>

    Add option to disable help completion autoloading (Bug#28607)
    
    * lisp/help-fns.el (help-enable-completion-auto-load): New option.
    (help--symbol-completion-table): Consult it.
    * doc/emacs/building.texi (Lisp Libraries): Document it.
    * etc/NEWS: Announce it.
    * doc/lispref/loading.texi (Autoload by Prefix): New section.
    (Autoload): Reference it.
---
 doc/emacs/building.texi  |  6 ++++++
 doc/lispref/loading.texi | 23 ++++++++++++++++++++++-
 etc/NEWS                 |  6 ++++++
 lisp/help-fns.el         | 18 +++++++++++++++---
 4 files changed, 49 insertions(+), 4 deletions(-)

diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi
index 31acfc8..246a04c 100644
--- a/doc/emacs/building.texi
+++ b/doc/emacs/building.texi
@@ -1499,6 +1499,12 @@ library lets Emacs properly set up the hyperlinks in the 
@file{*Help*}
 buffer).  To disable this feature, change the variable
 @code{help-enable-auto-load} to @code{nil}.
 
address@hidden help-enable-completion-auto-load
+Automatic loading also occurs when completing names for
address@hidden and @code{describe-function}, based on the
+prefix being completed.  To disable this feature, change the variable
address@hidden to @code{nil}.
+
 @vindex load-dangerous-libraries
 @cindex Lisp files byte-compiled by XEmacs
   By default, Emacs refuses to load compiled Lisp files which were
diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi
index f0cc689..fa6b301 100644
--- a/doc/lispref/loading.texi
+++ b/doc/lispref/loading.texi
@@ -466,9 +466,11 @@ first call to the function automatically loads the proper 
library, in
 order to install the real definition and other associated code, then
 runs the real definition as if it had been loaded all along.
 Autoloading can also be triggered by looking up the documentation of
-the function or macro (@pxref{Documentation Basics}).
+the function or macro (@pxref{Documentation Basics}), and completion
+of variable and function names (@pxref{Autoload by Prefix} below).
 
 @menu
+* Autoload by Prefix:: Autoload by Prefix.
 * When to Autoload::   When to Use Autoload.
 @end menu
 
@@ -703,6 +705,25 @@ symbol's new function value.  If the value of the optional 
argument
 function, only a macro.
 @end defun
 
address@hidden Autoload by Prefix
address@hidden Autoload by Prefix
address@hidden autoload by prefix
+
address@hidden definition-prefixes
address@hidden register-definition-prefixes
address@hidden autoload-compute-prefixes
+During completion for the commands @code{describe-variable} and
address@hidden, Emacs will try to load files which may
+contain definitions matching the prefix being completed.  The variable
address@hidden holds a hashtable which maps a prefix to
+the corresponding list of files to load for it.  Entries to this
+mapping are added by calls to @code{register-definition-prefixes}
+which are generated by @code{update-file-autoloads}
+(@pxref{Autoload}).  Files which don't contain any definitions worth
+loading (test files, for examples), should set
address@hidden to @code{nil} as a file-local
+variable.
+
 @node When to Autoload
 @subsection When to Use Autoload
 @cindex autoload, when to use
diff --git a/etc/NEWS b/etc/NEWS
index 573c823..1b66862 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -24,6 +24,12 @@ with a prefix argument or by typing 'C-u C-h C-n'.
 
 * Changes in Emacs 26.3
 
++++
+** New option 'help-enable-completion-auto-load'.
+This allows disabling the new feature introduced in Emacs 26.1 which
+loads files during completion of 'C-h f' and 'C-h v' according to
+'definition-prefixes'.
+
 
 * Editing Changes in Emacs 26.3
 
diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index a7812e3..8684a85 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -89,11 +89,23 @@ The functions will receive the function name as argument.")
       (unless (help--loaded-p file)
         (load file 'noerror 'nomessage)))))
 
+(defcustom help-enable-completion-auto-load t
+  "Whether completion for Help commands can perform autoloading.
+If non-nil, whenever invoking completion for `describe-function'
+or `describe-variable' load files that might contain definitions
+with the current prefix.  The files are chosen according to
+`definition-prefixes'."
+  :type 'boolean
+  :group 'help
+  :version "26.3")
+
 (defun help--symbol-completion-table (string pred action)
-  (let ((prefixes (radix-tree-prefixes (help-definition-prefixes) string)))
-    (help--load-prefixes prefixes))
+  (when help-enable-completion-auto-load
+    (let ((prefixes (radix-tree-prefixes (help-definition-prefixes) string)))
+      (help--load-prefixes prefixes)))
   (let ((prefix-completions
-         (mapcar #'intern (all-completions string definition-prefixes))))
+         (and help-enable-completion-auto-load
+              (mapcar #'intern (all-completions string definition-prefixes)))))
     (complete-with-action action obarray string
                           (if pred (lambda (sym)
                                      (or (funcall pred sym)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]