summaryrefslogtreecommitdiff
path: root/lisp/cedet/semantic/symref/list.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/cedet/semantic/symref/list.el')
-rw-r--r--lisp/cedet/semantic/symref/list.el95
1 files changed, 39 insertions, 56 deletions
diff --git a/lisp/cedet/semantic/symref/list.el b/lisp/cedet/semantic/symref/list.el
index c1f0a092afc..f72499bf88e 100644
--- a/lisp/cedet/semantic/symref/list.el
+++ b/lisp/cedet/semantic/symref/list.el
@@ -1,6 +1,6 @@
;;; semantic/symref/list.el --- Symref Output List UI.
-;; Copyright (C) 2008-2013 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2015 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <eric@siege-engine.com>
@@ -48,18 +48,18 @@ they are used in.
Display the references in `semantic-symref-results-mode'."
(interactive)
(semantic-fetch-tags)
- (let ((ct (semantic-current-tag))
- (res nil)
- )
+ (let ((ct (semantic-current-tag)))
;; Must have a tag...
(when (not ct) (error "Place cursor inside tag to be searched for"))
;; Check w/ user.
- (when (not (y-or-n-p (format "Find references for %s? " (semantic-tag-name ct))))
+ (when (not (y-or-n-p (format "Find references for %s? "
+ (semantic-tag-name ct))))
(error "Quit"))
;; Gather results and tags
(message "Gathering References...")
- (setq res (semantic-symref-find-references-by-name (semantic-tag-name ct)))
- (semantic-symref-produce-list-on-results res (semantic-tag-name ct))))
+ (let* ((name (semantic-tag-name ct))
+ (res (semantic-symref-find-references-by-name name)))
+ (semantic-symref-produce-list-on-results res name))))
;;;###autoload
(defun semantic-symref-symbol (sym)
@@ -72,11 +72,9 @@ Display the references in `semantic-symref-results-mode'."
(interactive (list (semantic-tag-name (semantic-complete-read-tag-project
"Symrefs for: "))))
(semantic-fetch-tags)
- (let ((res nil)
- )
- ;; Gather results and tags
- (message "Gathering References...")
- (setq res (semantic-symref-find-references-by-name sym))
+ ;; Gather results and tags
+ (message "Gathering References...")
+ (let ((res (semantic-symref-find-references-by-name sym)))
(semantic-symref-produce-list-on-results res sym)))
;;;###autoload
@@ -86,32 +84,19 @@ This command uses the currently configured references tool within the
current project to find references to the input SYM. The
references are the organized by file and the name of the function
they are used in.
-Display the references in`semantic-symref-results-mode'."
- (interactive (list (semantic-tag-name (semantic-complete-read-tag-buffer-deep
- "Symrefs for: "))))
+Display the references in `semantic-symref-results-mode'."
+ (interactive (list (let ((tag (semantic-current-tag)))
+ (read-string " Symrefs for: " nil nil
+ (when tag
+ (regexp-quote (semantic-tag-name tag)))))))
+ ;; FIXME: Shouldn't the input be in Emacs regexp format, for
+ ;; consistency? Converting it to extended is not hard.
(semantic-fetch-tags)
- (let ((res nil)
- )
- ;; Gather results and tags
- (message "Gathering References...")
- (setq res (semantic-symref-find-text sym))
+ (message "Gathering References...")
+ ;; Gather results and tags
+ (let ((res (semantic-symref-find-text sym)))
(semantic-symref-produce-list-on-results res sym)))
-
-(defun semantic-symref-produce-list-on-results (res str)
- "Produce a symref list mode buffer on the results RES."
- (when (not res) (error "No references found"))
- (semantic-symref-result-get-tags res t)
- (message "Gathering References...done")
- ;; Build a references buffer.
- (let ((buff (get-buffer-create
- (format "*Symref %s" str)))
- )
- (switch-to-buffer-other-window buff)
- (set-buffer buff)
- (semantic-symref-results-mode res))
- )
-
;;; RESULTS MODE
;;
(defgroup semantic-symref-results-mode nil
@@ -178,36 +163,35 @@ Display the references in`semantic-symref-results-mode'."
(defcustom semantic-symref-auto-expand-results nil
"Non-nil to expand symref results on buffer creation."
- :group 'semantic-symref-results-mode
:type 'boolean)
(defcustom semantic-symref-results-mode-hook nil
"Hook run when `semantic-symref-results-mode' starts."
- :group 'semantic-symref-results-mode
:type 'hook)
(defvar semantic-symref-current-results nil
"The current results in a results mode buffer.")
-(defun semantic-symref-results-mode (results)
- ;; FIXME: Use define-derived-mode.
- "Major-mode for displaying Semantic Symbol Reference RESULTS.
-RESULTS is an object of class `semantic-symref-results'."
- (interactive)
- (kill-all-local-variables)
- (setq major-mode 'semantic-symref-results-mode
- mode-name "Symref"
- )
- (use-local-map semantic-symref-results-mode-map)
- (set (make-local-variable 'semantic-symref-current-results)
- results)
- (semantic-symref-results-dump results)
- (goto-char (point-min))
+(defun semantic-symref-produce-list-on-results (res str)
+ "Produce a symref list mode buffer on the results RES."
+ (when (not res) (error "No references found"))
+ (semantic-symref-result-get-tags res t)
+ (message "Gathering References...done")
+ ;; Build a references buffer.
+ (let ((buff (get-buffer-create (format "*Symref %s" str))))
+ (switch-to-buffer-other-window buff)
+ (set-buffer buff)
+ (semantic-symref-results-mode)
+ (set (make-local-variable 'semantic-symref-current-results) res)
+ (semantic-symref-results-dump res)
+ (goto-char (point-min))))
+
+(define-derived-mode semantic-symref-results-mode nil "Symref"
+ "Major-mode for displaying Semantic Symbol Reference results."
(buffer-disable-undo)
+ ;; FIXME: Why bother turning off font-lock?
(set (make-local-variable 'font-lock-global-modes) nil)
- (font-lock-mode -1)
- (run-mode-hooks 'semantic-symref-results-mode-hook)
- )
+ (font-lock-mode -1))
(defun semantic-symref-hide-buffer ()
"Hide buffer with semantic-symref results."
@@ -215,9 +199,8 @@ RESULTS is an object of class `semantic-symref-results'."
(bury-buffer))
(defcustom semantic-symref-results-summary-function 'semantic-format-tag-prototype
- "*Function to use when creating items in Imenu.
+ "Function to use when creating items in Imenu.
Some useful functions are found in `semantic-format-tag-functions'."
- :group 'semantic-symref-results-mode
:type semantic-format-tag-custom-list)
(defun semantic-symref-results-dump (results)