1" Vim syntax support file 2" Maintainer: Bram Moolenaar <Bram@vim.org> 3" Last Change: 2010 Aug 08 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). When there are several, separated by dots, 53 " load each in sequence. 54 for name in split(s, '\.') 55 exe "runtime! syntax/" . name . ".vim syntax/" . name . "/*.vim" 56 endfor 57 endif 58endfun 59 60 61" Handle adding doxygen to other languages (C, C++, C#, IDL) 62au Syntax c,cpp,cs,idl 63 \ if (exists('b:load_doxygen_syntax') && b:load_doxygen_syntax) 64 \ || (exists('g:load_doxygen_syntax') && g:load_doxygen_syntax) 65 \ | runtime! syntax/doxygen.vim 66 \ | endif 67 68 69" Source the user-specified syntax highlighting file 70if exists("mysyntaxfile") && filereadable(expand(mysyntaxfile)) 71 execute "source " . mysyntaxfile 72endif 73 74" Restore 'cpoptions' 75let &cpo = s:cpo_save 76unlet s:cpo_save 77