# HG changeset patch # User Chong Yidong # Date 1251506592 0 # Node ID 12884dc4387288f389ed2cc8c46c44feb01e90d7 # Parent 6810f0d84270f88ceeb8a1dea679c8deb1ddb2f4 * cedet/semantic/tag.el: Add declare-function statements for semantic-current-tag, semantic-ctxt-current-mode, semantic-format-tag-prototype, and semantic-find-first-tag-by-name. Require semantic/lex. (semantic-obtain-foreign-tag, semantic-tag-p) (semantic-tag-alias-definition, semantic-tag-components) (semantic-tag-components-with-overlays) (semantic-insert-foreign-tag): Remove unnecessary autoloads. (semantic-tag-mode): Require semantic/find. (semantic--tag-find-parent-by-name): Require semantic/find. (semantic--tag-find-parent-by-name): Require semantic/analyze/fcn/ (semantic--tag-unlink-cache-from-buffer) (semantic--tag-link-cache-to-buffer): Require semantic. (semantic-foreign-tag): Require semantic/doc. (semantic-insert-foreign-tag-default, semantic-insert-foreign-tag): Require semantic/format. diff -r 6810f0d84270 -r 12884dc43872 lisp/cedet/semantic/tag.el --- a/lisp/cedet/semantic/tag.el Fri Aug 28 19:18:35 2009 +0000 +++ b/lisp/cedet/semantic/tag.el Sat Aug 29 00:43:12 2009 +0000 @@ -50,6 +50,18 @@ ;; Keep this only so long as we have obsolete fcns. (require 'semantic/fw) +(require 'semantic/lex) + +(declare-function semantic-current-tag "semantic/find") +(declare-function semantic-find-first-tag-by-name "semantic/find") +(declare-function semantic-ctxt-current-mode "semantic/ctxt") +(declare-function semantic-analyze-split-name "semantic/analyze/fcn") +(declare-function semantic-fetch-tags "semantic") +(declare-function semantic-clear-toplevel-cache "semantic") +(declare-function semantic-documentation-for-tag "semantic/doc") +(declare-function semantic-format-tag-prototype "semantic/format") +(declare-function semantic-format-tag-summarize "semantic/format") +(declare-function semantic-format-tag-name "semantic/format") (defconst semantic-tag-version semantic-version "Version string of semantic tags made with this code.") @@ -207,6 +219,7 @@ If point is inside TAG bounds, return the major mode active at point. Return the major mode active at beginning of TAG otherwise. See also the function `semantic-ctxt-current-mode'." + (require 'semantic/find) (or tag (setq tag (semantic-current-tag))) (or (semantic--tag-get-property tag :mode) (let ((buffer (semantic-tag-buffer tag)) @@ -308,8 +321,6 @@ (semantic--tag-get-property tag :filename)))) ;;; Tag tests and comparisons. -;; -;;;###autoload (defsubst semantic-tag-p (tag) "Return non-nil if TAG is most likely a semantic tag." (condition-case nil @@ -810,10 +821,12 @@ "Find the superclass NAME in the list of SUPERS. If a simple search doesn't do it, try splitting up the names in SUPERS." + (require 'semantic/find) (let ((stag nil)) (setq stag (semantic-find-first-tag-by-name name supers)) (when (not stag) + (require 'semantic/analyze/fcn) (dolist (S supers) (let* ((sname (semantic-tag-name S)) (splitparts (semantic-analyze-split-name sname)) @@ -947,7 +960,6 @@ "Return the class of tag TAG is an alias." (semantic-tag-get-attribute tag :aliasclass)) -;;;###autoload (define-overloadable-function semantic-tag-alias-definition (tag) "Return the definition TAG is an alias. The returned value is a tag of the class that @@ -960,7 +972,6 @@ ;;; Language Specific Tag access via overload ;; -;;;###autoload (define-overloadable-function semantic-tag-components (tag) "Return a list of components for TAG. A Component is a part of TAG which itself may be a TAG. @@ -978,7 +989,6 @@ (semantic-tag-function-arguments tag)) (t nil))) -;;;###autoload (define-overloadable-function semantic-tag-components-with-overlays (tag) "Return the list of top level components belonging to TAG. Children are any sub-tags which contain overlays. @@ -1160,6 +1170,7 @@ (defun semantic--tag-unlink-cache-from-buffer () "Convert all tags in the current cache to use overlay proxys. This function is for internal use only." + (require 'semantic) (semantic--tag-unlink-list-from-buffer ;; @todo- use fetch-tags-fast? (semantic-fetch-tags))) @@ -1169,6 +1180,7 @@ (defun semantic--tag-link-cache-to-buffer () "Convert all tags in the current cache to use overlays. This function is for internal use only." + (require 'semantic) (condition-case nil ;; In this unique case, we cannot call the usual toplevel fn. ;; because we don't want a reparse, we want the old overlays. @@ -1289,6 +1301,7 @@ "Return a copy of TAG as a foreign tag, or nil if it can't be done. TAG defaults to the tag at point in current buffer. See also `semantic-foreign-tag-p'." + (require 'semantic/doc) (or tag (setq tag (semantic-current-tag))) (when (semantic-tag-p tag) (let ((ftag (semantic-tag-copy tag nil t)) @@ -1305,8 +1318,6 @@ ftag)))) ;; High level obtain/insert foreign tag overloads -;; -;;;###autoload (define-overloadable-function semantic-obtain-foreign-tag (&optional tag) "Obtain a foreign tag from TAG. TAG defaults to the tag at point in current buffer. @@ -1319,13 +1330,14 @@ and attempts to insert a prototype/function call." ;; Long term goal: Have a mechanism for a tempo-like template insert ;; for the given tag. + (require 'semantic/format) (insert (semantic-format-tag-prototype foreign-tag))) -;;;###autoload (define-overloadable-function semantic-insert-foreign-tag (foreign-tag) "Insert FOREIGN-TAG into the current buffer. Signal an error if FOREIGN-TAG is not a valid foreign tag. This function is overridable with the symbol `insert-foreign-tag'." + (require 'semantic/format) (semantic-foreign-tag-check foreign-tag) (:override) (message (semantic-format-tag-summarize foreign-tag))) @@ -1334,11 +1346,13 @@ (define-mode-local-override semantic-insert-foreign-tag log-edit-mode (foreign-tag) "Insert foreign tags into log-edit mode." + (require 'semantic/format) (insert (concat "(" (semantic-format-tag-name foreign-tag) "): "))) (define-mode-local-override semantic-insert-foreign-tag change-log-mode (foreign-tag) "Insert foreign tags into log-edit mode." + (require 'semantic/format) (insert (concat "(" (semantic-format-tag-name foreign-tag) "): ")))