sponsor Vim development Vim logo Vim Book Ad

TagsBase.zip : Creates a menu of tags (functions, fields...) keep track of the current function

 script karma  Rating 74/38, Downloaded by 7068  Comments, bugs, improvements  Vim wiki

created by
Benoit Cerrina
script type
Tags Base started as the merge and enhancements of the scripts:
*TagsMenu (http://members.home.net/jayglanville/tagsmenu/TagsMenu.html) script
    Jay Dickon Glanville  dickon@nortelnetworks.com

*ctags.vim (http://vim.sourceforge.net/scripts/script.php?script_id=12) script
Alexey Marinichev   lyosha@lyosha.2y.net
see |TagsBase-Credits|
It now is a complete rewrite of those scripts plus additional functionality in embedded
perl as well as some of the original vim code which is used to provide the same functionality
when you are unlucky enough not to have access to the +perl or +perl/dyn feature in
your vim build.

Tags Base automatically uses |ctags| to generate a |tag| file for the currently
edited file, refreshes it if the file is newer than the tags file and uses it
to provide a set of advanced feature to vim.

Beware that this means that some tag files are left behind on your computer,
they may end up in the same directory as your files or in a temporary
directory depending on the rights of the file directory. You can specify the
prefixe and suffix used to compute those temporary files.  There is also
                some options to cleanup those file, the default being of only cleaning up
                the temp directory.

Right now the feature provided are:
    *Detection of the currently edited tag and its type and presentation of this information in the
     title bar. Most of the time when editing a C/C++/java... file this means you have on the
     title bar the name of the current function.     *Creation of a menu of tags in the file this
     contains things such as method, function, class... the type of tags supported depends on
     the current language and on the implementation of the |ctags| program

    TagsBase manipulates all tags supported by |ctags|. (For the full list of
    supported tags and attributes, see "http://ctags.sourceforge.net/";

Additional description can be found in the included help file. This script requires a version 5.0 of ctags.

This script has also been used by me as a test bed for embedding perl in vim scripts specifically for
performance reasons since parsing a large set of tags can take a fair amount of time.
For this reason you'll find a couple fo files (TagsBase.pl and VIM.pm) which I use in the development
process, to find out about this see vimtip #140
install details
download the zip file, uncompress it in your runtimepath and run :helptags DirectoryWhereYouUncompressed/doc

rate this script Life Changing Helpful Unfulfilling 
script versions (upload new version)

Click on the package to download.

package script version date Vim version user release notes
TagsBase.zip 0.9.2 2001-11-28 6.0 Benoit Cerrina corrected several bugs when the file path contains some spaces
corrected a bug with the TagsWindow
TagsBase.zip 0.9.1 2001-11-12 6.0 Benoit Cerrina corrected a bug in the current tag lookup when perl is not available
TagsBase.zip 0.9 2001-11-11 6.0 Benoit Cerrina added the TagsWindow command to visualize tags in a buffer.
added a menu entry to opent the Tags Buffer.
added a toc to the help.
corrected the NT ACL bug.
TagsBase.zip 0.8.3 2001-10-25 6.0 Benoit Cerrina greatly enhanced the win32 cascading menus (when perl is available)
TagsBase.zip 0.8.2 2001-10-21 6.0 Benoit Cerrina bugfix removed some stray timing statements from the perl scripts
TagsBase.zip 0.8.1 2001-10-20 6.0 Benoit Cerrina small correction for bug resulting in error message:
Uncaught exception from user code:
^ICan't call method "Type" on unblessed reference at perl/TagsBase.vim line 376.

^ITagsBase::GetTagType(391) called at (eval 14) line 1
^Ieval 'TagsBase::GetTagType 391
;' called at (eval 14) line 0
Uncaught exception from user code:
^ICan't call method "Name" on unblessed reference at perl/TagsBase.vim line 389.

^ITagsBase::GetTagName(391) called at (eval 15) line 1
^Ieval 'TagsBase::GetTagName 391
TagsBase.zip 0.8 2001-10-19 6.0 Benoit Cerrina Greatly improved the speed when perl is available.  Now almost everything happens in
the perl interpreter.   Speed improvement example: on a file with 5408 tags:
645 second --> 72 second.  Limited the number of menu items to
configurable size both for time reasons and because gtk doesn't like menus which are
longer than the screen.
Added the TagsBase.pl and VIM.pm file to the distribution, those are not needed for
running the scripts but are usefull for debuging the perl parts.
TagsBase.zip 0.7.1 2001-10-09 6.0 Benoit Cerrina "Corrected some bugs regarding the situation when perl is not builtin.
  Corrected a bug when there is only one tag in the file repeated tag generation would interpret it as being overloaded.
TagsBase.zip 0.7 2001-10-09 6.0 Benoit Cerrina Corrected some bugs regarding paths with spaces.
replaced the script local function s:GetTagName by a global function TagsBase_GetTagName.
Modified the doc to suggest using this function for displaying the tag name someplace else than the title bar.
Corrected a bug regarding the cleanup code and editing read only files.
TagsBase.zip 0.6.1 2001-10-05 6.0 Benoit Cerrina Uses the BufEnter autocmd to refresh the menu, this makes the menu work with split windows.
Keeps the menu generating command in a buffer variable to avoid the extra work of reparsing if it is not needed.  
Uses the perl interpreter if available to speed up the tags parsing.
TagsBase.zip 0.6 2001-10-02 6.0 Benoit Cerrina avoids opening a buffer on the tags file, optionnally destroy the created tags files,  
changed the name of the g:CatProg variable to g:TagsBase_CatProg.
See :help TagsBase for a descriptions of the new options
TagsBase.zip 0.5.3 2001-10-02 6.0 Benoit Cerrina added new options to select the name of the tags
files. Removed the html files. Changed the      
license to public domain added the              
|TagsBase-ChangeLog| and the |TagsBase-Credits|
section to the help. Added a warning about the  
existence of the tags files"                    
TagsBase.zip 0.5.2 2001-10-02 6.0 Benoit Cerrina bug fixes in the sorting of the lines array
TagsBase.zip 0.5.1 2001-10-02 6.0 Benoit Cerrina bug correction
TagsBase.zip 0.5 2001-10-02 6.0 Benoit Cerrina I'm having a problem with the vim online interface, the version 0.5 script is a zip file not a vim file.
Once you download it it should be renamed as TagsBase.zip and unpacked in your runtimepath.
TagsBase.zip 0.5 2001-10-02 6.0 Benoit Cerrina Added help, made customization easier, packaged into a zip file.
To install unpack in a directory in your runtimepath (see :help runtimepath) and run
:helptags $dirUnpacked/doc
TagsBase.zip 0.4 2001-10-01 6.0 Benoit Cerrina reorganized and commented the script, support for the builtin tags stack, support for ordered tag file generation, some bugs corrected.
TagsBase.zip 0.3 2001-10-01 6.0 Benoit Cerrina added a menu entry to toggle on and off the title string functionality
TagsBase.zip 0.2 2001-10-01 6.0 Benoit Cerrina Corrected dependency on a $TMP variable
corrected bug when on an ms system the shell used was a unix type shell, this generated problems due to the shell misinterpreting the '' in a path.
If you find any other bugs, please report it by mail to me (benoit.cerrina@writeme.com
TagsBase.zip 0.1 2001-09-30 6.0 Benoit Cerrina Initial upload
ip used for rating:

If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly.
Questions about Vim should go to the maillist. Help Bram help Uganda.