X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/bfed046df118533fc599449d48e59a3100e6439d..50650cb6887d99b01eeb1e686fc1f695c2a0c64a:/lisp/cedet/semantic/symref.el diff --git a/lisp/cedet/semantic/symref.el b/lisp/cedet/semantic/symref.el index 10293d9496..516a4f3041 100644 --- a/lisp/cedet/semantic/symref.el +++ b/lisp/cedet/semantic/symref.el @@ -1,6 +1,6 @@ ;;; semantic/symref.el --- Symbol Reference API -;; Copyright (C) 2008-2015 Free Software Foundation, Inc. +;; Copyright (C) 2008-2016 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam @@ -101,7 +101,7 @@ If no tools are supported, then 'grep is assumed.") (defun semantic-symref-calculate-rootdir () "Calculate the root directory for a symref search. -Start with and EDE project, or use the default directory." +Start with an EDE project, or use the default directory." (let* ((rootproj (when (and (featurep 'ede) ede-minor-mode) (ede-toplevel))) (rootdirbase (if rootproj @@ -162,7 +162,7 @@ ARGS are the initialization arguments to pass to the created class." ;;;###autoload (defun semantic-symref-find-references-by-name (name &optional scope tool-return) "Find a list of references to NAME in the current project. -Optional SCOPE specifies which file set to search. Defaults to 'project. +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'. @@ -186,7 +186,7 @@ to perform the search. This was added for use by a test harness." ;;;###autoload (defun semantic-symref-find-tags-by-name (name &optional scope) "Find a list of tags by NAME in the current project. -Optional SCOPE specifies which file set to search. Defaults to 'project. +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'." @@ -206,7 +206,7 @@ Returns an object of class `semantic-symref-result'." ;;;###autoload (defun semantic-symref-find-tags-by-regexp (name &optional scope) "Find a list of references to NAME in the current project. -Optional SCOPE specifies which file set to search. Defaults to 'project. +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'." @@ -226,7 +226,7 @@ Returns an object of class `semantic-symref-result'." ;;;###autoload (defun semantic-symref-find-tags-by-completion (name &optional scope) "Find a list of references to NAME in the current project. -Optional SCOPE specifies which file set to search. Defaults to 'project. +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'." @@ -246,7 +246,7 @@ Returns an object of class `semantic-symref-result'." ;;;###autoload (defun semantic-symref-find-file-references-by-name (name &optional scope) "Find a list of references to NAME in the current project. -Optional SCOPE specifies which file set to search. Defaults to 'project. +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'." @@ -266,8 +266,8 @@ Returns an object of class `semantic-symref-result'." ;;;###autoload (defun semantic-symref-find-text (text &optional scope) "Find a list of occurrences of TEXT in the current project. -TEXT is a regexp formatted for use with egrep. -Optional SCOPE specifies which file set to search. Defaults to 'project. +TEXT is a regexp formatted for use with grep -E. +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'." @@ -337,7 +337,7 @@ Use the `semantic-symref-hit-tags' method to get this list.") "List of buffers opened by `semantic-symref-result-get-tags'.") (defun semantic-symref-cleanup-recent-buffers-fcn () - "Hook function to be used in 'post-command-hook' to cleanup buffers. + "Hook function to be used in `post-command-hook' to cleanup buffers. Buffers collected during symref can result in some files being opened multiple times for one operation. This will keep buffers open until the next command is executed." @@ -351,7 +351,7 @@ until the next command is executed." (setq semantic-symref-recently-opened-buffers nil) (remove-hook 'post-command-hook 'semantic-symref-cleanup-recent-buffers-fcn) ) - + (cl-defmethod semantic-symref-result-get-tags ((result semantic-symref-result) &optional open-buffers) "Get the list of tags from the symref result RESULT. @@ -472,8 +472,12 @@ buffers that were opened." (goto-char (point-min)) (forward-line (1- line)) - ;; Search forward for the matching text - (when (re-search-forward (regexp-quote searchtxt) + ;; Search forward for the matching text. + ;; FIXME: This still fails if the regexp uses something specific + ;; to the extended syntax, like grouping. + (when (re-search-forward (if (memq searchtype '(regexp tagregexp)) + searchtxt + (regexp-quote searchtxt)) (point-at-eol) t) (goto-char (match-beginning 0)) @@ -508,7 +512,7 @@ buffers that were opened." (searchtype :initarg :searchtype :type symbol :documentation "The type of search to do. -Values could be `symbol, `regexp, 'tagname, or 'completion.") +Values could be 'symbol, 'regexp, 'tagname, or 'completion.") (searchscope :initarg :searchscope :type symbol :documentation