1" Vim syntax support file 2" Maintainer: Bram Moolenaar <[email protected]> 3" Last Change: 2004 Aug 28 4 5" This file sets up for syntax highlighting. 6" It is loaded from "syntax.vim" and "manual.vim". 7" 1. Set the default highlight groups. 8" 2. Install Syntax autocommands for all the available syntax files. 9 10if !has("syntax") 11 finish 12endif 13 14" let others know that syntax has been switched on 15let syntax_on = 1 16 17" Set the default highlighting colors. Use a color scheme if specified. 18if exists("colors_name") 19 exe "colors " . colors_name 20else 21 runtime! syntax/syncolor.vim 22endif 23 24" Line continuation is used here, remove 'C' from 'cpoptions' 25let s:cpo_save = &cpo 26set cpo&vim 27 28" First remove all old syntax autocommands. 29au! Syntax 30 31au Syntax * call s:SynSet() 32 33fun! s:SynSet() 34 " clear syntax for :set syntax=OFF and any syntax name that doesn't exist 35 syn clear 36 if exists("b:current_syntax") 37 unlet b:current_syntax 38 endif 39 40 let s = expand("<amatch>") 41 if s == "ON" 42 " :set syntax=ON 43 if &filetype == "" 44 echohl ErrorMsg 45 echo "filetype unknown" 46 echohl None 47 endif 48 let s = &filetype 49 endif 50 51 if s != "" 52 " Load the syntax file(s) 53 exe "runtime! syntax/" . s . ".vim" 54 endif 55endfun 56 57 58" Handle adding doxygen to other languages (C, C++, IDL) 59au Syntax cpp,c,idl 60 \ if (exists('b:load_doxygen_syntax') && b:load_doxygen_syntax) 61 \ || (exists('g:load_doxygen_syntax') && g:load_doxygen_syntax) 62 \ | runtime syntax/doxygen.vim 63 \ | endif 64 65au Syntax *doxygen 66 \ if exists("b:current_syntax") | finish | endif 67 \ | let syn = substitute(expand("<amatch>"), 'doxygen$', '', '') 68 \ | if syn != '' | exe 'runtime syntax/'.syn.'.vim' | endif 69 \ | if b:current_syntax !~ 'doxygen' | runtime syntax/doxygen.vim | endif 70 71 72" Source the user-specified syntax highlighting file 73if exists("mysyntaxfile") && filereadable(expand(mysyntaxfile)) 74 execute "source " . mysyntaxfile 75endif 76 77" Restore 'cpoptions' 78let &cpo = s:cpo_save 79unlet s:cpo_save 80