-*- llvm/utils/vim/README -*-

These are syntax highlighting files for the VIM editor. Included are:

* llvm.vim

  Syntax highlighting mode for LLVM assembly files. To use, copy `llvm.vim' to
  ~/.vim/syntax and add this code to your ~/.vimrc :

  augroup filetype
    au! BufRead,BufNewFile *.ll     set filetype=llvm
  augroup END

* tablegen.vim

  Syntax highlighting mode for TableGen description files. To use, copy
  `tablegen.vim' to ~/.vim/syntax and add this code to your ~/.vimrc :

  augroup filetype
    au! BufRead,BufNewFile *.td     set filetype=tablegen
  augroup END


If you prefer, instead of making copies you can make symlinks from
~/.vim/syntax/... to the syntax files in your LLVM source tree. Apparently
this did not work with older versions of vim however, so if this doesn't
work you may need to make actual copies of the files.

Another option, if you do not already have a ~/.vim/syntax directory, is
to symlink ~/.vim/syntax itself to llvm/utils/vim .

Note: If you notice missing or incorrect syntax highlighting, please contact
<llvmbugs [at] cs.uiuc.edu>; if you wish to provide a patch to improve the
functionality, it will be most appreciated. Thank you.

If you find yourself working with LLVM Makefiles often, but you don't get syntax
highlighting (because the files have names such as Makefile.rules or
TEST.nightly.Makefile), add the following to your ~/.vimrc:

  " LLVM Makefile highlighting mode
  augroup filetype
    au! BufRead,BufNewFile *Makefile*     set filetype=make
  augroup END
