TagHighlight is a plugin that highlights names of classes, variables, types etc in source code in Vim. This makes it quicker and easier to spot errors in your code. By using exuberant ctags and parsing the output, the typedefs, #defines, enumerated names etc are all clearly highlighted in different colours. As standard, it supports the following languages (but it's very easy to add more):

This version replaces the previous "CTAGS Highlighting" script and it is necessary to uninstall that plugin in order to upgrade to the new version. Detailed instructions are on the website or in the enclosed documentation.

It also requires a few extra highlighting groups to be defined (using :highlight). See the documentation for details. Alternatively, install the Bandit colour scheme from vimscript #2645 (or http://www.cgtk.co.uk/bandit): this provides all the groups by default. You can easily customise this if you don't like the colours.

Allow overriding the file-language relationship without having to edit the language definitions. Added support for Matlab (if your version of ctags supports it). Added support for .hh extension for C/C++ headers. Fixed bug with highlight priority for non-specified types.

Addition of LanguageDetectionMethods option to allow loading of types when FileType or Syntax are set (thanks to Hong Xu for the suggestion). This also involved addition of syntax and filetype definitions to all languages. Prevent Vim from repeatedly loading autocmds in plugin development mode. Don't overwrite Cursor colour definitions with SQL cursor colouring (thanks again to Hong Xu for reporting this bug).

This is a replacement for the previous "ctags_highlighter" script that I wrote a while ago, with quite a few changes/improvements:

* Now works well even if you don't keep the current directory at the root of your project;
* Recursive by default (rather than with '!' on command);
* Works with any recent python (2.6+, 3.0+), with or without the Vim python interface; alternatively a binary version is available for Linux or Windows if you don't have a recent version of python installed;
* MUCH more customisable and project options are easier to set;
* Better standard library support (e.g. highlight of tag names for Qt4, JDK, Android, wxWidgets etc) with a separate download from the (new) website - much easier to create new standard libraries;
* Support for user libraries (highlighting of tag names for your own library
* Much easier to add support for new programming languages - all defined with a single text file (assuming ctags supports the language);
* Uses Vim's autoload mechanism, so should be quicker to load;
* Uses a dictionary for settings, so less namespace clutter;
* Support for pre- and post- update and read hooks in case you really want to do something clever;
* New website (http://www.cgtk.co.uk/taghighlight)

This is the first release of the new version. I would like to extend my gratitude to Aleksey Baibarin, Marcus Martin, Mishail, Prasun Ratn and Yongwei Wu for their help testing all the various pre-releases of the new version. Without their help, there would be a LOT more bugs in this version than there are now!

Better support for paths with spaces in them. Added support for Android SDK and Java JDK (requires latest gui_types_and_tags from the website). Optional local variable highlighting (see caveats on the website) for Java, C# and C++ as well as C.

Improvements to VIMFILESDIR identification. Re-architecture of type definitions to make them more sensitive to different ctags "kinds" for different languages. Note that Enumerator has been renamed to EnumerationValue: the latest Bandit Colour Scheme supports this. Fixed escaping of paths and operation of ReadTypes when not in an autocommand.

Changed some of the defaults to the python script (so fewer options need to be passed by UpdateTypesFile). It should now be possible to generate the types file simply by running "mktypes.py" or "mktypes.py -r" in the project directory. Of course, UpdateTypesFile still works too. Added UpdateTypesFileOnly command for projects in which the tags file is updated externally (e.g. the Linux kernel source). Removed regular expression matches by default: this is much quicker for large projects. Also added more screenshots to the website.