blob: 3e54b6948b7d28c92fcac390152cc6e24fffd31d [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax support file
2" Maintainer: Bram Moolenaar <Bram@vim.org>
Bram Moolenaar4399ef42005-02-12 14:29:27 +00003" Last Change: 2005 Feb 08
Bram Moolenaar071d4272004-06-13 20:20:40 +00004
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)
Bram Moolenaar4399ef42005-02-12 14:29:27 +000053 exe "runtime! syntax/" . s . ".vim syntax/" . s . "/*.vim"
Bram Moolenaar071d4272004-06-13 20:20:40 +000054 endif
55endfun
56
57
Bram Moolenaard4755bb2004-09-02 19:12:26 +000058" 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
Bram Moolenaar071d4272004-06-13 20:20:40 +000072" 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