aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/cedet/semantic
diff options
context:
space:
mode:
authorStefan Monnier2013-09-17 11:50:33 -0400
committerStefan Monnier2013-09-17 11:50:33 -0400
commit049c405a90db540f0de2e56cc965a43e1eaebcd9 (patch)
tree100e026562201994b00e31e30edfca308dfa29e9 /lisp/cedet/semantic
parente8b66a6a262b12405e2f29f3693a1f2d57061e2b (diff)
downloademacs-049c405a90db540f0de2e56cc965a43e1eaebcd9.tar.gz
emacs-049c405a90db540f0de2e56cc965a43e1eaebcd9.zip
* lisp/cedet/semantic/symref/list.el (semantic-symref-results-mode):
Use define-derived-mode. (semantic-symref-produce-list-on-results): Set up the results here instead of in semantic-symref-results-mode. Move after semantic-symref-current-results's defvar now that it refers to that var. (semantic-symref-auto-expand-results) (semantic-symref-results-summary-function) (semantic-symref-results-mode-hook): Remove redundant :group arg. (semantic-symref, semantic-symref-symbol, semantic-symref-regexp): Initialize directly in the let.
Diffstat (limited to 'lisp/cedet/semantic')
-rw-r--r--lisp/cedet/semantic/symref/list.el83
1 files changed, 31 insertions, 52 deletions
diff --git a/lisp/cedet/semantic/symref/list.el b/lisp/cedet/semantic/symref/list.el
index c1f0a092afc..af8e18f8c55 100644
--- a/lisp/cedet/semantic/symref/list.el
+++ b/lisp/cedet/semantic/symref/list.el
@@ -48,18 +48,18 @@ they are used in.
48Display the references in `semantic-symref-results-mode'." 48Display the references in `semantic-symref-results-mode'."
49 (interactive) 49 (interactive)
50 (semantic-fetch-tags) 50 (semantic-fetch-tags)
51 (let ((ct (semantic-current-tag)) 51 (let ((ct (semantic-current-tag)))
52 (res nil)
53 )
54 ;; Must have a tag... 52 ;; Must have a tag...
55 (when (not ct) (error "Place cursor inside tag to be searched for")) 53 (when (not ct) (error "Place cursor inside tag to be searched for"))
56 ;; Check w/ user. 54 ;; Check w/ user.
57 (when (not (y-or-n-p (format "Find references for %s? " (semantic-tag-name ct)))) 55 (when (not (y-or-n-p (format "Find references for %s? "
56 (semantic-tag-name ct))))
58 (error "Quit")) 57 (error "Quit"))
59 ;; Gather results and tags 58 ;; Gather results and tags
60 (message "Gathering References...") 59 (message "Gathering References...")
61 (setq res (semantic-symref-find-references-by-name (semantic-tag-name ct))) 60 (let* ((name (semantic-tag-name ct))
62 (semantic-symref-produce-list-on-results res (semantic-tag-name ct)))) 61 (res (semantic-symref-find-references-by-name name)))
62 (semantic-symref-produce-list-on-results res name))))
63 63
64;;;###autoload 64;;;###autoload
65(defun semantic-symref-symbol (sym) 65(defun semantic-symref-symbol (sym)
@@ -72,11 +72,9 @@ Display the references in `semantic-symref-results-mode'."
72 (interactive (list (semantic-tag-name (semantic-complete-read-tag-project 72 (interactive (list (semantic-tag-name (semantic-complete-read-tag-project
73 "Symrefs for: ")))) 73 "Symrefs for: "))))
74 (semantic-fetch-tags) 74 (semantic-fetch-tags)
75 (let ((res nil) 75 ;; Gather results and tags
76 ) 76 (message "Gathering References...")
77 ;; Gather results and tags 77 (let ((res (semantic-symref-find-references-by-name sym)))
78 (message "Gathering References...")
79 (setq res (semantic-symref-find-references-by-name sym))
80 (semantic-symref-produce-list-on-results res sym))) 78 (semantic-symref-produce-list-on-results res sym)))
81 79
82;;;###autoload 80;;;###autoload
@@ -90,28 +88,11 @@ Display the references in`semantic-symref-results-mode'."
90 (interactive (list (semantic-tag-name (semantic-complete-read-tag-buffer-deep 88 (interactive (list (semantic-tag-name (semantic-complete-read-tag-buffer-deep
91 "Symrefs for: ")))) 89 "Symrefs for: "))))
92 (semantic-fetch-tags) 90 (semantic-fetch-tags)
93 (let ((res nil) 91 (message "Gathering References...")
94 ) 92 ;; Gather results and tags
95 ;; Gather results and tags 93 (let ((res (semantic-symref-find-text sym)))
96 (message "Gathering References...")
97 (setq res (semantic-symref-find-text sym))
98 (semantic-symref-produce-list-on-results res sym))) 94 (semantic-symref-produce-list-on-results res sym)))
99 95
100
101(defun semantic-symref-produce-list-on-results (res str)
102 "Produce a symref list mode buffer on the results RES."
103 (when (not res) (error "No references found"))
104 (semantic-symref-result-get-tags res t)
105 (message "Gathering References...done")
106 ;; Build a references buffer.
107 (let ((buff (get-buffer-create
108 (format "*Symref %s" str)))
109 )
110 (switch-to-buffer-other-window buff)
111 (set-buffer buff)
112 (semantic-symref-results-mode res))
113 )
114
115;;; RESULTS MODE 96;;; RESULTS MODE
116;; 97;;
117(defgroup semantic-symref-results-mode nil 98(defgroup semantic-symref-results-mode nil
@@ -178,36 +159,35 @@ Display the references in`semantic-symref-results-mode'."
178 159
179(defcustom semantic-symref-auto-expand-results nil 160(defcustom semantic-symref-auto-expand-results nil
180 "Non-nil to expand symref results on buffer creation." 161 "Non-nil to expand symref results on buffer creation."
181 :group 'semantic-symref-results-mode
182 :type 'boolean) 162 :type 'boolean)
183 163
184(defcustom semantic-symref-results-mode-hook nil 164(defcustom semantic-symref-results-mode-hook nil
185 "Hook run when `semantic-symref-results-mode' starts." 165 "Hook run when `semantic-symref-results-mode' starts."
186 :group 'semantic-symref-results-mode
187 :type 'hook) 166 :type 'hook)
188 167
189(defvar semantic-symref-current-results nil 168(defvar semantic-symref-current-results nil
190 "The current results in a results mode buffer.") 169 "The current results in a results mode buffer.")
191 170
192(defun semantic-symref-results-mode (results) 171(defun semantic-symref-produce-list-on-results (res str)
193 ;; FIXME: Use define-derived-mode. 172 "Produce a symref list mode buffer on the results RES."
194 "Major-mode for displaying Semantic Symbol Reference RESULTS. 173 (when (not res) (error "No references found"))
195RESULTS is an object of class `semantic-symref-results'." 174 (semantic-symref-result-get-tags res t)
196 (interactive) 175 (message "Gathering References...done")
197 (kill-all-local-variables) 176 ;; Build a references buffer.
198 (setq major-mode 'semantic-symref-results-mode 177 (let ((buff (get-buffer-create (format "*Symref %s" str))))
199 mode-name "Symref" 178 (switch-to-buffer-other-window buff)
200 ) 179 (set-buffer buff)
201 (use-local-map semantic-symref-results-mode-map) 180 (semantic-symref-results-mode)
202 (set (make-local-variable 'semantic-symref-current-results) 181 (set (make-local-variable 'semantic-symref-current-results) res)
203 results) 182 (semantic-symref-results-dump res)
204 (semantic-symref-results-dump results) 183 (goto-char (point-min))))
205 (goto-char (point-min)) 184
185(define-derived-mode semantic-symref-results-mode nil "Symref"
186 "Major-mode for displaying Semantic Symbol Reference results."
206 (buffer-disable-undo) 187 (buffer-disable-undo)
188 ;; FIXME: Why bother turning off font-lock?
207 (set (make-local-variable 'font-lock-global-modes) nil) 189 (set (make-local-variable 'font-lock-global-modes) nil)
208 (font-lock-mode -1) 190 (font-lock-mode -1))
209 (run-mode-hooks 'semantic-symref-results-mode-hook)
210 )
211 191
212(defun semantic-symref-hide-buffer () 192(defun semantic-symref-hide-buffer ()
213 "Hide buffer with semantic-symref results." 193 "Hide buffer with semantic-symref results."
@@ -215,9 +195,8 @@ RESULTS is an object of class `semantic-symref-results'."
215 (bury-buffer)) 195 (bury-buffer))
216 196
217(defcustom semantic-symref-results-summary-function 'semantic-format-tag-prototype 197(defcustom semantic-symref-results-summary-function 'semantic-format-tag-prototype
218 "*Function to use when creating items in Imenu. 198 "Function to use when creating items in Imenu.
219Some useful functions are found in `semantic-format-tag-functions'." 199Some useful functions are found in `semantic-format-tag-functions'."
220 :group 'semantic-symref-results-mode
221 :type semantic-format-tag-custom-list) 200 :type semantic-format-tag-custom-list)
222 201
223(defun semantic-symref-results-dump (results) 202(defun semantic-symref-results-dump (results)