[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 353dbbb: New commands 'apropos-local-variable', 'ap
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] master 353dbbb: New commands 'apropos-local-variable', 'apropos-local-value' |
Date: |
Fri, 28 Jul 2017 03:48:42 -0400 (EDT) |
branch: master
commit 353dbbb6682e287fbe8936ca65277af709b90817
Author: Drew Adams <address@hidden>
Commit: Eli Zaretskii <address@hidden>
New commands 'apropos-local-variable', 'apropos-local-value'
* lisp/apropos.el (apropos-local-variable, apropos-local-value):
New functions. (Bug#27424)
* doc/emacs/help.texi (Apropos): Document 'apropos-local-variable'
and 'apropos-local-value'.
* etc/NEWS: Mention the new commands.
---
doc/emacs/help.texi | 9 +++++++++
etc/NEWS | 6 ++++++
lisp/apropos.el | 42 ++++++++++++++++++++++++++++++++++++++++++
3 files changed, 57 insertions(+)
diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi
index fd6df1c..460ced0 100644
--- a/doc/emacs/help.texi
+++ b/doc/emacs/help.texi
@@ -320,12 +320,21 @@ search for non-customizable variables too.
Search for variables. With a prefix argument, search for
customizable variables only.
address@hidden M-x apropos-local-variable
address@hidden apropos-local-variable
+Search for buffer-local variables.
+
@item M-x apropos-value
@findex apropos-value
Search for variables whose values match the specified pattern. With a
prefix argument, search also for functions with definitions matching
the pattern, and Lisp symbols with properties matching the pattern.
address@hidden M-x apropos-local-value
address@hidden apropos-local-value
+Search for buffer-local variables whose values match the specified
+pattern.
+
@item C-h d
@kindex C-h d
@findex apropos-documentation
diff --git a/etc/NEWS b/etc/NEWS
index f43491b..a7800fe 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -590,6 +590,12 @@ different buffer while keeping point, mark, markers, and
text
properties as intact as possible.
+++
+** New commands 'apropos-local-variable' and 'apropos-local-value.
+These are buffer-local versions of 'apropos-variable' and
+'apropos-value', respectively. They show buffer-local variables whose
+names and values, respectively, match a given pattern.
+
++++
** More user control of reordering bidirectional text for display.
The two new variables, 'bidi-paragraph-start-re' and
'bidi-paragraph-separate-re', allow customization of what exactly are
diff --git a/lisp/apropos.el b/lisp/apropos.el
index cbd9c71..86d9b51 100644
--- a/lisp/apropos.el
+++ b/lisp/apropos.el
@@ -514,6 +514,19 @@ options only, i.e. behave like `apropos-user-option'."
(let ((apropos-do-all (if do-not-all nil t)))
(apropos-user-option pattern)))
+;;;###autoload
+(defun apropos-local-variable (pattern &optional buffer)
+ "Show buffer-local variables that match PATTERN.
+Optional arg BUFFER (default: current buffer) is the buffer to check.
+
+The output includes variables that are not yet set in BUFFER, but that
+will be buffer-local when set."
+ (interactive (list (apropos-read-pattern "buffer-local variable")))
+ (unless buffer (setq buffer (current-buffer)))
+ (apropos-command pattern nil (lambda (symbol)
+ (and (local-variable-if-set-p symbol)
+ (get symbol 'variable-documentation)))))
+
;; For auld lang syne:
;;;###autoload
(defalias 'command-apropos 'apropos-command)
@@ -795,6 +808,35 @@ Returns list of symbols and values found."
(let ((apropos-multi-type do-all))
(apropos-print nil "\n----------------\n")))
+;;;###autoload
+(defun apropos-local-value (pattern &optional buffer)
+ "Show buffer-local variables whose values match PATTERN.
+This is like `apropos-value', but only for buffer-local variables.
+Optional arg BUFFER (default: current buffer) is the buffer to check."
+ (interactive (list (apropos-read-pattern "value of buffer-local variable")))
+ (unless buffer (setq buffer (current-buffer)))
+ (apropos-parse-pattern pattern)
+ (setq apropos-accumulator ())
+ (let ((var nil))
+ (mapatoms
+ (lambda (symb)
+ (unless (memq symb '(apropos-regexp apropos-pattern
apropos-all-words-regexp
+ apropos-words apropos-all-words
apropos-accumulator symb var))
+ (setq var (apropos-value-internal 'local-variable-if-set-p symb
'symbol-value)))
+ (when (and (fboundp 'apropos-false-hit-str) (apropos-false-hit-str
var))
+ (setq var nil))
+ (when var
+ (setq apropos-accumulator (cons (list symb (apropos-score-str var)
nil var)
+ apropos-accumulator))))))
+ (let ((apropos-multi-type nil))
+ (if (> emacs-major-version 20)
+ (apropos-print
+ nil "\n----------------\n"
+ (format "Buffer `%s' has the following local variables\nmatching
%s`%s':"
+ (buffer-name buffer)
+ (if (consp pattern) "keywords " "")
+ pattern))
+ (apropos-print nil "\n----------------\n"))))
;;;###autoload
(defun apropos-documentation (pattern &optional do-all)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 353dbbb: New commands 'apropos-local-variable', 'apropos-local-value',
Eli Zaretskii <=