summaryrefslogtreecommitdiff
path: root/lisp/cedet
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/cedet')
-rw-r--r--lisp/cedet/semantic/db-el.el45
-rw-r--r--lisp/cedet/semantic/symref.el186
-rw-r--r--lisp/cedet/srecode/insert.el7
3 files changed, 119 insertions, 119 deletions
diff --git a/lisp/cedet/semantic/db-el.el b/lisp/cedet/semantic/db-el.el
index a85b9024eb0..413996a5e8f 100644
--- a/lisp/cedet/semantic/db-el.el
+++ b/lisp/cedet/semantic/db-el.el
@@ -44,19 +44,19 @@
)
"A table for returning search results from Emacs.")
-(cl-defmethod semanticdb-refresh-table ((obj semanticdb-table-emacs-lisp) &optional force)
+(cl-defmethod semanticdb-refresh-table ((_obj semanticdb-table-emacs-lisp) &optional _force)
"Do not refresh Emacs Lisp table.
It does not need refreshing."
nil)
-(cl-defmethod semanticdb-needs-refresh-p ((obj semanticdb-table-emacs-lisp))
+(cl-defmethod semanticdb-needs-refresh-p ((_obj semanticdb-table-emacs-lisp))
"Return nil, we never need a refresh."
nil)
(cl-defmethod object-print ((obj semanticdb-table-emacs-lisp) &rest strings)
"Pretty printer extension for `semanticdb-table-emacs-lisp'.
Adds the number of tags in this file to the object print name."
- (apply 'call-next-method obj (cons " (proxy)" strings)))
+ (apply #'cl-call-next-method obj (cons " (proxy)" strings)))
(defclass semanticdb-project-database-emacs-lisp
(semanticdb-project-database eieio-singleton)
@@ -71,15 +71,15 @@ Adds the number of tags in this file to the object print name."
"Pretty printer extension for `semanticdb-table-emacs-lisp'.
Adds the number of tags in this file to the object print name."
(let ((count 0))
- (mapatoms (lambda (sym) (setq count (1+ count))))
- (apply 'call-next-method obj (cons
- (format " (%d known syms)" count)
- strings))))
+ (mapatoms (lambda (_sym) (setq count (1+ count))))
+ (apply #'cl-call-next-method obj (cons
+ (format " (%d known syms)" count)
+ strings))))
;; Create the database, and add it to searchable databases for Emacs Lisp mode.
(defvar-mode-local emacs-lisp-mode semanticdb-project-system-databases
(list
- (semanticdb-project-database-emacs-lisp "Emacs"))
+ (make-instance 'semanticdb-project-database-emacs-lisp))
"Search Emacs core for symbols.")
(defvar-mode-local emacs-lisp-mode semanticdb-find-default-throttle
@@ -96,32 +96,32 @@ Create one of our special tables that can act as an intermediary."
;; We need to return something since there is always the "master table"
;; The table can then answer file name type questions.
(when (not (slot-boundp obj 'tables))
- (let ((newtable (semanticdb-table-emacs-lisp "Emacs System Table")))
+ (let ((newtable (make-instance 'semanticdb-table-emacs-lisp)))
(oset obj tables (list newtable))
(oset newtable parent-db obj)
(oset newtable tags nil)
))
(cl-call-next-method))
-(cl-defmethod semanticdb-file-table ((obj semanticdb-project-database-emacs-lisp) filename)
+(cl-defmethod semanticdb-file-table ((obj semanticdb-project-database-emacs-lisp) _filename)
"From OBJ, return FILENAME's associated table object.
For Emacs Lisp, creates a specialized table."
(car (semanticdb-get-database-tables obj))
)
-(cl-defmethod semanticdb-get-tags ((table semanticdb-table-emacs-lisp ))
+(cl-defmethod semanticdb-get-tags ((_table semanticdb-table-emacs-lisp ))
"Return the list of tags belonging to TABLE."
;; specialty table ? Probably derive tags at request time.
nil)
-(cl-defmethod semanticdb-equivalent-mode ((table semanticdb-table-emacs-lisp) &optional buffer)
+(cl-defmethod semanticdb-equivalent-mode ((_table semanticdb-table-emacs-lisp) &optional buffer)
"Return non-nil if TABLE's mode is equivalent to BUFFER.
Equivalent modes are specified by the `semantic-equivalent-major-modes'
local variable."
(with-current-buffer buffer
(eq (or mode-local-active-mode major-mode) 'emacs-lisp-mode)))
-(cl-defmethod semanticdb-full-filename ((obj semanticdb-table-emacs-lisp))
+(cl-defmethod semanticdb-full-filename ((_obj semanticdb-table-emacs-lisp))
"Fetch the full filename that OBJ refers to.
For Emacs Lisp system DB, there isn't one."
nil)
@@ -151,7 +151,7 @@ If Emacs cannot resolve this symbol to a particular file, then return nil."
'defvar)
))
(sym (intern (semantic-tag-name tag)))
- (file (condition-case err
+ (file (condition-case nil
(symbol-file sym type)
;; Older [X]Emacs don't have a 2nd argument.
(error (symbol-file sym))))
@@ -169,7 +169,6 @@ If Emacs cannot resolve this symbol to a particular file, then return nil."
(setq file (concat file ".gz"))))
(let* ((tab (semanticdb-file-table-object file))
- (alltags (when tab (semanticdb-get-tags tab)))
(newtags (when tab (semanticdb-find-tags-by-name-method
tab (semantic-tag-name tag))))
(match nil))
@@ -248,7 +247,7 @@ TOKTYPE is a hint to the type of tag desired."
"Variable used to collect `mapatoms' output.")
(cl-defmethod semanticdb-find-tags-by-name-method
- ((table semanticdb-table-emacs-lisp) name &optional tags)
+ ((_table semanticdb-table-emacs-lisp) name &optional tags)
"Find all tags named NAME in TABLE.
Uses `intern-soft' to match NAME to Emacs symbols.
Return a list of tags."
@@ -269,26 +268,26 @@ Return a list of tags."
))))
(cl-defmethod semanticdb-find-tags-by-name-regexp-method
- ((table semanticdb-table-emacs-lisp) regex &optional tags)
+ ((_table semanticdb-table-emacs-lisp) regex &optional tags)
"Find all tags with name matching REGEX in TABLE.
Optional argument TAGS is a list of tags to search.
Uses `apropos-internal' to find matches.
Return a list of tags."
(if tags (cl-call-next-method)
- (delq nil (mapcar 'semanticdb-elisp-sym->tag
+ (delq nil (mapcar #'semanticdb-elisp-sym->tag
(apropos-internal regex)))))
(cl-defmethod semanticdb-find-tags-for-completion-method
- ((table semanticdb-table-emacs-lisp) prefix &optional tags)
+ ((_table semanticdb-table-emacs-lisp) prefix &optional tags)
"In TABLE, find all occurrences of tags matching PREFIX.
Optional argument TAGS is a list of tags to search.
Returns a table of all matching tags."
(if tags (cl-call-next-method)
- (delq nil (mapcar 'semanticdb-elisp-sym->tag
+ (delq nil (mapcar #'semanticdb-elisp-sym->tag
(all-completions prefix obarray)))))
(cl-defmethod semanticdb-find-tags-by-class-method
- ((table semanticdb-table-emacs-lisp) class &optional tags)
+ ((_table semanticdb-table-emacs-lisp) _class &optional tags)
"In TABLE, find all occurrences of tags of CLASS.
Optional argument TAGS is a list of tags to search.
Returns a table of all matching tags."
@@ -323,7 +322,7 @@ Like `semanticdb-find-tags-for-completion-method' for Emacs Lisp."
;;; Advanced Searches
;;
(cl-defmethod semanticdb-find-tags-external-children-of-type-method
- ((table semanticdb-table-emacs-lisp) type &optional tags)
+ ((_table semanticdb-table-emacs-lisp) type &optional tags)
"Find all nonterminals which are child elements of TYPE
Optional argument TAGS is a list of tags to search.
Return a list of tags."
@@ -333,7 +332,7 @@ Return a list of tags."
(let* ((class (intern-soft type))
(taglst (when class
(delq nil
- (mapcar 'semanticdb-elisp-sym->tag
+ (mapcar #'semanticdb-elisp-sym->tag
;; Fancy eieio function that knows all about
;; built in methods belonging to CLASS.
(cl-generic-all-functions class)))))
diff --git a/lisp/cedet/semantic/symref.el b/lisp/cedet/semantic/symref.el
index 516a4f30414..0c1fe7e449b 100644
--- a/lisp/cedet/semantic/symref.el
+++ b/lisp/cedet/semantic/symref.el
@@ -65,6 +65,8 @@
;; Your tool should then create an instance of `semantic-symref-result'.
(require 'semantic)
+(eval-when-compile (require 'semantic/find)) ;For semantic-find-tags-*
+(eval-when-compile (require 'ede/proj)) ;For `metasubproject' warning.
(defvar ede-minor-mode)
(declare-function data-debug-new-buffer "data-debug")
@@ -109,7 +111,7 @@ Start with an EDE project, or use the default directory."
default-directory)))
(if (and rootproj (condition-case nil
;; Hack for subprojects.
- (oref rootproj :metasubproject)
+ (oref rootproj metasubproject)
(error nil)))
(ede-up-directory rootdirbase)
rootdirbase)))
@@ -271,7 +273,7 @@ Optional SCOPE specifies which file set to search. Defaults to `project'.
Refers to `semantic-symref-tool', to determine the reference tool to use
for the current buffer.
Returns an object of class `semantic-symref-result'."
- (interactive "sEgrep style Regexp: ")
+ (interactive "sGrep -E style Regexp: ")
(let* ((inst (semantic-symref-instantiate
:searchfor text
:searchtype 'regexp
@@ -284,6 +286,80 @@ Returns an object of class `semantic-symref-result'."
(semantic-symref-data-debug-last-result))))
)
+;;; SYMREF TOOLS
+;;
+;; The base symref tool provides something to hang new tools off of
+;; for finding symbol references.
+(defclass semantic-symref-tool-baseclass ()
+ ((searchfor :initarg :searchfor
+ :type string
+ :documentation "The thing to search for.")
+ (searchtype :initarg :searchtype
+ :type symbol
+ :documentation "The type of search to do.
+Values could be 'symbol, 'regexp, 'tagname, or 'completion.")
+ (searchscope :initarg :searchscope
+ :type symbol
+ :documentation
+ "The scope to search for.
+Can be 'project, 'target, or 'file.")
+ (resulttype :initarg :resulttype
+ :type symbol
+ :documentation
+ "The kind of search results desired.
+Can be 'line, 'file, or 'tag.
+The type of result can be converted from 'line to 'file, or 'line to 'tag,
+but not from 'file to 'line or 'tag.")
+ )
+ "Baseclass for all symbol references tools.
+A symbol reference tool supplies functionality to identify the locations of
+where different symbols are used.
+
+Subclasses should be named `semantic-symref-tool-NAME', where
+NAME is the name of the tool used in the configuration variable
+`semantic-symref-tool'"
+ :abstract t)
+
+(cl-defmethod semantic-symref-get-result ((tool semantic-symref-tool-baseclass))
+ "Calculate the results of a search based on TOOL.
+The symref TOOL should already contain the search criteria."
+ (let ((answer (semantic-symref-perform-search tool))
+ )
+ (when answer
+ (let ((answersym (if (eq (oref tool resulttype) 'file)
+ :hit-files
+ (if (stringp (car answer))
+ :hit-text
+ :hit-lines))))
+ (semantic-symref-result (oref tool searchfor)
+ answersym
+ answer
+ :created-by tool))
+ )
+ ))
+
+(cl-defmethod semantic-symref-perform-search ((_tool semantic-symref-tool-baseclass))
+ "Base search for symref tools should throw an error."
+ (error "Symref tool objects must implement `semantic-symref-perform-search'"))
+
+(cl-defmethod semantic-symref-parse-tool-output ((tool semantic-symref-tool-baseclass)
+ outputbuffer)
+ "Parse the entire OUTPUTBUFFER of a symref tool.
+Calls the method `semantic-symref-parse-tool-output-one-line' over and
+over until it returns nil."
+ (with-current-buffer outputbuffer
+ (goto-char (point-min))
+ (let ((result nil)
+ (hit nil))
+ (while (setq hit (semantic-symref-parse-tool-output-one-line tool))
+ (setq result (cons hit result)))
+ (nreverse result)))
+ )
+
+(cl-defmethod semantic-symref-parse-tool-output-one-line ((_tool semantic-symref-tool-baseclass))
+ "Base tool output parser is not implemented."
+ (error "Symref tool objects must implement `semantic-symref-parse-tool-output-one-line'"))
+
;;; RESULTS
;;
;; The results class and methods provide features for accessing hits.
@@ -316,9 +392,9 @@ Use the `semantic-symref-hit-tags' method to get this list.")
(cl-defmethod semantic-symref-result-get-files ((result semantic-symref-result))
"Get the list of files from the symref result RESULT."
- (if (slot-boundp result :hit-files)
+ (if (slot-boundp result 'hit-files)
(oref result hit-files)
- (let* ((lines (oref result :hit-lines))
+ (let* ((lines (oref result hit-lines))
(files (mapcar (lambda (a) (cdr a)) lines))
(ans nil))
(setq ans (list (car files))
@@ -359,12 +435,12 @@ Optional OPEN-BUFFERS indicates that the buffers that the hits are
in should remain open after scanning.
Note: This can be quite slow if most of the hits are not in buffers
already."
- (if (and (slot-boundp result :hit-tags) (oref result hit-tags))
+ (if (and (slot-boundp result 'hit-tags) (oref result hit-tags))
(oref result hit-tags)
;; Calculate the tags.
- (let ((lines (oref result :hit-lines))
- (txt (oref (oref result :created-by) :searchfor))
- (searchtype (oref (oref result :created-by) :searchtype))
+ (let ((lines (oref result hit-lines))
+ (txt (oref (oref result created-by) searchfor))
+ (searchtype (oref (oref result created-by) searchtype))
(ans nil)
(out nil))
(save-excursion
@@ -390,7 +466,7 @@ already."
(semantic--tag-put-property (car out) :hit lines)))
))
;; Out is reversed... twice
- (oset result :hit-tags (nreverse out)))))
+ (oset result hit-tags (nreverse out)))))
(defun semantic-symref-hit-to-tag-via-db (hit searchtxt searchtype)
"Convert the symref HIT into a TAG by looking up the tag via a database.
@@ -403,20 +479,18 @@ If there is no database, of if the searchtype is wrong, return nil."
;; tagname, tagregexp, tagcompletions
(if (not (memq searchtype '(tagname tagregexp tagcompletions)))
nil
- (let* ((line (car hit))
- (file (cdr hit))
+ (let* ((file (cdr hit))
;; FAIL here vv - don't load is not obeyed if no table found.
(db (semanticdb-file-table-object file t))
- (found nil)
+ (found
+ (cond ((eq searchtype 'tagname)
+ (semantic-find-tags-by-name searchtxt db))
+ ((eq searchtype 'tagregexp)
+ (semantic-find-tags-by-name-regexp searchtxt db))
+ ((eq searchtype 'tagcompletions)
+ (semantic-find-tags-for-completion searchtxt db))))
(hit nil)
)
- (cond ((eq searchtype 'tagname)
- (setq found (semantic-find-tags-by-name searchtxt db)))
- ((eq searchtype 'tagregexp)
- (setq found (semantic-find-tags-by-name-regexp searchtxt db)))
- ((eq searchtype 'tagcompletions)
- (setq found (semantic-find-tags-for-completion searchtxt db)))
- )
;; Loop over FOUND to see if we can line up a match with a line number.
(when (= (length found) 1)
(setq hit (car found)))
@@ -501,80 +575,6 @@ buffers that were opened."
(semantic--tag-put-property tag :hit (list line)))
tag))
-;;; SYMREF TOOLS
-;;
-;; The base symref tool provides something to hang new tools off of
-;; for finding symbol references.
-(defclass semantic-symref-tool-baseclass ()
- ((searchfor :initarg :searchfor
- :type string
- :documentation "The thing to search for.")
- (searchtype :initarg :searchtype
- :type symbol
- :documentation "The type of search to do.
-Values could be 'symbol, 'regexp, 'tagname, or 'completion.")
- (searchscope :initarg :searchscope
- :type symbol
- :documentation
- "The scope to search for.
-Can be 'project, 'target, or 'file.")
- (resulttype :initarg :resulttype
- :type symbol
- :documentation
- "The kind of search results desired.
-Can be 'line, 'file, or 'tag.
-The type of result can be converted from 'line to 'file, or 'line to 'tag,
-but not from 'file to 'line or 'tag.")
- )
- "Baseclass for all symbol references tools.
-A symbol reference tool supplies functionality to identify the locations of
-where different symbols are used.
-
-Subclasses should be named `semantic-symref-tool-NAME', where
-NAME is the name of the tool used in the configuration variable
-`semantic-symref-tool'"
- :abstract t)
-
-(cl-defmethod semantic-symref-get-result ((tool semantic-symref-tool-baseclass))
- "Calculate the results of a search based on TOOL.
-The symref TOOL should already contain the search criteria."
- (let ((answer (semantic-symref-perform-search tool))
- )
- (when answer
- (let ((answersym (if (eq (oref tool :resulttype) 'file)
- :hit-files
- (if (stringp (car answer))
- :hit-text
- :hit-lines))))
- (semantic-symref-result (oref tool searchfor)
- answersym
- answer
- :created-by tool))
- )
- ))
-
-(cl-defmethod semantic-symref-perform-search ((tool semantic-symref-tool-baseclass))
- "Base search for symref tools should throw an error."
- (error "Symref tool objects must implement `semantic-symref-perform-search'"))
-
-(cl-defmethod semantic-symref-parse-tool-output ((tool semantic-symref-tool-baseclass)
- outputbuffer)
- "Parse the entire OUTPUTBUFFER of a symref tool.
-Calls the method `semantic-symref-parse-tool-output-one-line' over and
-over until it returns nil."
- (with-current-buffer outputbuffer
- (goto-char (point-min))
- (let ((result nil)
- (hit nil))
- (while (setq hit (semantic-symref-parse-tool-output-one-line tool))
- (setq result (cons hit result)))
- (nreverse result)))
- )
-
-(cl-defmethod semantic-symref-parse-tool-output-one-line ((tool semantic-symref-tool-baseclass))
- "Base tool output parser is not implemented."
- (error "Symref tool objects must implement `semantic-symref-parse-tool-output-one-line'"))
-
(provide 'semantic/symref)
;; Local variables:
diff --git a/lisp/cedet/srecode/insert.el b/lisp/cedet/srecode/insert.el
index 19999a6fd99..66c4b7d23ab 100644
--- a/lisp/cedet/srecode/insert.el
+++ b/lisp/cedet/srecode/insert.el
@@ -194,9 +194,10 @@ Buffer based features related to change hooks is handled one level up."
;; area. Return value is not important.
))
-(declare-function data-debug-new-buffer "data-debug")
-(declare-function data-debug-insert-stuff-list "data-debug")
-(declare-function data-debug-insert-thing dictionary "data-debug")
+(declare-function data-debug-new-buffer "data-debug" (name))
+(declare-function data-debug-insert-stuff-list "data-debug" (stufflist prefix))
+(declare-function data-debug-insert-thing "data-debug"
+ (thing prefix prebuttontext &optional parent))
(defun srecode-insert-show-error-report (dictionary format &rest args)
"Display an error report based on DICTIONARY, FORMAT and ARGS.