Merge branch 'vim-runtime'
[vim_mainline.git] / runtime / syntax / synload.vim
blob54aecbb9886472563dc4df452e491b1cd0a5ad5d
1 " Vim syntax support file
2 " Maintainer:   Bram Moolenaar <Bram@vim.org>
3 " Last Change:  2006 Apr 30
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.
10 if !has("syntax")
11   finish
12 endif
14 " let others know that syntax has been switched on
15 let syntax_on = 1
17 " Set the default highlighting colors.  Use a color scheme if specified.
18 if exists("colors_name")
19   exe "colors " . colors_name
20 else
21   runtime! syntax/syncolor.vim
22 endif
24 " Line continuation is used here, remove 'C' from 'cpoptions'
25 let s:cpo_save = &cpo
26 set cpo&vim
28 " First remove all old syntax autocommands.
29 au! Syntax
31 au Syntax *             call s:SynSet()
33 fun! 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
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
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
58 endfun
61 " Handle adding doxygen to other languages (C, C++, IDL)
62 au Syntax cpp,c,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
69 " Source the user-specified syntax highlighting file
70 if exists("mysyntaxfile") && filereadable(expand(mysyntaxfile))
71   execute "source " . mysyntaxfile
72 endif
74 " Restore 'cpoptions'
75 let &cpo = s:cpo_save
76 unlet s:cpo_save