Function: semantic-tag-full-name

semantic-tag-full-name is a byte-compiled function defined in tag-ls.el.gz.

Signature

(semantic-tag-full-name TAG &optional STREAM-OR-BUFFER)

Documentation

Return the fully qualified name of TAG in the package hierarchy.

STREAM-OR-BUFFER can be anything convertible by semantic-something-to-tag-table, but must be a toplevel semantic tag stream that contains TAG.

A Package Hierarchy is defined in UML by the way classes and methods are organized on disk. Some languages use this concept such that a class can be accessed via it's fully qualified name, (such as Java.)

Other languages qualify names within a Namespace (such as C++) which result in a different package like structure.

Languages which do not override this function with tag-full-name will combine semantic-tag-full-package and semantic-tag-name, separated with language separator character. Override functions only need to handle STREAM-OR-BUFFER with a tag stream value, or nil.

TODO - this function should probably also take a PARENT to TAG to resolve issues where a method in a class in a package is present.

Source Code

;; Defined in /usr/src/emacs/lisp/cedet/semantic/tag-ls.el.gz
(define-overloadable-function semantic-tag-full-name (tag &optional stream-or-buffer)
  "Return the fully qualified name of TAG in the package hierarchy.
STREAM-OR-BUFFER can be anything convertible by
`semantic-something-to-tag-table', but must be a toplevel
semantic tag stream that contains TAG.

A Package Hierarchy is defined in UML by the way classes and methods
are organized on disk.  Some languages use this concept such that a
class can be accessed via it's fully qualified name, (such as Java.)

Other languages qualify names within a Namespace (such as C++) which
result in a different package like structure.

Languages which do not override this function with
`tag-full-name' will combine `semantic-tag-full-package' and
`semantic-tag-name', separated with language separator character.
Override functions only need to handle STREAM-OR-BUFFER with a
tag stream value, or nil.

TODO - this function should probably also take a PARENT to TAG to
resolve issues where a method in a class in a package is present."
  (let ((stream (semantic-something-to-tag-table
                 (or stream-or-buffer tag))))
    (:override-with-args (tag stream))))