[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master c3210ce 5/8: packages/names: Add support for find-function
From: |
Artur Malabarba |
Subject: |
[elpa] master c3210ce 5/8: packages/names: Add support for find-function/variable/face. |
Date: |
Sat, 13 Dec 2014 04:26:56 +0000 |
branch: master
commit c3210ceffbb3d3f8f6187a2a4bcbb603a8e99345
Author: Artur Malabarba <address@hidden>
Commit: Artur Malabarba <address@hidden>
packages/names: Add support for find-function/variable/face.
Advise find-function-search-for-symbol so it works with namespaces.
---
names.el | 26 +++++++++++++++++++++++++-
1 files changed, 25 insertions(+), 1 deletions(-)
diff --git a/names.el b/names.el
index b019231..2f9087b 100644
--- a/names.el
+++ b/names.el
@@ -584,6 +584,30 @@ Also adds `version' to `names--fbound' and `names--bound'."
(cdr-safe def))
byte-compile-macro-environment))))))))
+;;;###autoload
+(defadvice find-function-search-for-symbol
+ (around names-around-find-function-search-for-symbol-advice
+ (symbol type library) activate)
+ "Make sure `find-function-search-for-symbol' understands namespaces."
+ ad-do-it
+ (ignore-errors
+ (unless (cdr ad-return-value)
+ (with-current-buffer (car ad-return-value)
+ (search-forward-regexp "^(define-namespace\\_>")
+ (skip-chars-forward "\r\n[:blank:]")
+ (let* ((names--regexp
+ (concat "\\`" (regexp-quote
+ (symbol-name (read (current-buffer))))))
+ (short-symbol
+ ;; We manually implement `names--remove-namespace'
+ ;; because it might not be loaded.
+ (let ((name (symbol-name symbol)))
+ (when (string-match names--regexp name)
+ (intern (replace-match "" nil nil name))))))
+ (when short-symbol
+ (ad-set-arg 0 short-symbol)
+ ad-do-it))))))
+
(defun names--extract-autoloads (body)
"Return a list of the forms in BODY preceded by :autoload."
(let (acons)
@@ -666,7 +690,7 @@ are namespaced become un-namespaced."
(delq nil (mapcar 'names--remove-namespace (apply 'append lists))))
(defun names--remove-namespace (symbol)
- "Return SYMBOL with namespace removed, or nil if S wasn't namespaced."
+ "Return SYMBOL with namespace removed, or nil if it wasn't namespaced."
(names--remove-regexp symbol names--regexp))
(defun names--remove-protection (symbol)
- [elpa] master updated (0cedae8 -> cfedb02), Artur Malabarba, 2014/12/12
- [elpa] master b0d863f 1/8: packages/names: Readme improvements, Artur Malabarba, 2014/12/12
- [elpa] master 7b03302 3/8: packages/names.el: Define names--top-of-namespace., Artur Malabarba, 2014/12/12
- [elpa] master 0722f17 4/8: packages/names: Exemplify emacs24 dependency, Artur Malabarba, 2014/12/12
- [elpa] master c3210ce 5/8: packages/names: Add support for find-function/variable/face.,
Artur Malabarba <=
- [elpa] master b2c8b01 6/8: packages/names: Finish support for find-function-read, Artur Malabarba, 2014/12/12
- [elpa] master 4ee3bb4 2/8: packages/names.el: Better Readme, Artur Malabarba, 2014/12/12
- [elpa] master cfedb02 8/8: Merge commit 'a11ba779f588af28f93fd4b7a716849695d5d9f3', Artur Malabarba, 2014/12/12
- [elpa] master a11ba77 7/8: packages/names: No need to require, Artur Malabarba, 2014/12/12