Taginator updates your 'tags' files, used by vim automatically.
Start Taginator at your system startup or user login and it generates fresh tags files for each of your projects. After that it watches your project for file changes and updates the tags file if you change a file. If you change more files, e.g. with a git rebase/checkout, Taginator waits till there are no change notifications any more and generates the complete tags file again.
npm install -g coffee-script
to make sure coffee-script is globally installedgit clone http://github.com/hoschi/taginator
cd taginator
npm install
bin/taginator
npm install -g taginator
Install jsctags first, if you want to generate
tags for JavaScript. After that put my ctags script into your ~/bin/
directory
so it calls ctags or jsctags automatically. jsctags
needs node
version 0.8.26
which is pretty old.
Check out my ctags scripts handle this with
nvm.
Create the file /.taginator.json
and put your project configurations in an array.
Here is an example configuration:
[
{
"name":"test",
"cwd":"~/vimtest/",
"output":"~/vimtest/tags",
"extensions":[
"js"
],
"ctagArgs":[
"--language-force=javascript"
],
"inputDirs":[
"a/",
"b/"
],
"globs":[
"~/vimtest/.git/**/*",
"~/vimtest/a/**/*.js",
"~/vimtest/b/**/*.js"
]
}
]
Run taginator with your config or the example config and browse to http://localhost:3000/ to see an explanation of your configuration.
Properties:
name
the name of the projectcwd
the current working directory of your project and base path for inputDirs
output
file path for the tags fileextensions
valid file extensions to generate tags forctagArgs
static arguments for the ctags command passed on every call for this projectinputDirs
for the ctags commandglobs
which select the files should be watchedThis project uses the library node-glob
, so Windows users also must use forward
slashes instead of back slashes. Please read the note at the end of
this site.
Using ~/
as a shortcut for your home dir is ok at all OSs.
The cwd
property must have a trailing slash so it can be removed safely from
found files to make them relative paths. This config property is not optional!
Start Taginator and let it update your tags files automatically :)
In vim I had to set the tags file in my ~/.vimrc
the following way
to enable jumping between tags:
set tags=tags
Use nodemon to automatically restart the app:
nodemon -e .coffee,.js,.json -w /home/YOURHOMEDIR/.taginator.json -w . --exec coffee taginator.coffee