Next: Semanticdb Internals, Previous: Parser code, Up: Semantic Internals [Contents][Index]

### 3.2 Tag handling

A tag represents an individual item found in a buffer, such as a function or variable. Tag handling is handled in several source files.

`semantic-tag.el`

  Basic tag creation, queries, cloning, binding, and unbinding.

`semantic-tag-write.el`

  Write a tag or tag list to a stream. These routines are used by `semanticdb-file.el` when saving a list of tags.

`semantic-tag-file.el`

  Files associated with tags. Goto-tag, file for include, and file for a prototype.

`semantic-tag-ls.el`

  Language dependent features of a tag, such as parent calculation, slot protection, and other states like abstract, virtual, static, and leaf.

`semantic-dep.el`

  Include file handling. Contains the include path concepts, and routines for looking up file names in the include path.

`semantic-format.el`

  Convert a tag into a nicely formatted and colored string. Use `semantic-test-all-format-tag-functions` to test different output options.

`semantic-find.el`

  Find tags matching different conditions in a tag table. These routines are used by `semanticdb-find.el` once the database has been converted into a simpler tag table.

`semantic-sort.el`

  Sorting lists of tags in different ways. Includes sorting a plain list of tags forward or backward. Includes binning tags based on attributes (bucketize), and tag adoption for multiple references to the same thing.

`semantic-doc.el`

  Capture documentation comments from near a tag.