xref: /vim-8.2.3635/runtime/syntax/synload.vim (revision 2c7f8c57)
1071d4279SBram Moolenaar" Vim syntax support file
2071d4279SBram Moolenaar" Maintainer:	Bram Moolenaar <[email protected]>
3*2c7f8c57SBram Moolenaar" Last Change:	2020 Apr 13
4071d4279SBram Moolenaar
5071d4279SBram Moolenaar" This file sets up for syntax highlighting.
6071d4279SBram Moolenaar" It is loaded from "syntax.vim" and "manual.vim".
7071d4279SBram Moolenaar" 1. Set the default highlight groups.
8071d4279SBram Moolenaar" 2. Install Syntax autocommands for all the available syntax files.
9071d4279SBram Moolenaar
10071d4279SBram Moolenaarif !has("syntax")
11071d4279SBram Moolenaar  finish
12071d4279SBram Moolenaarendif
13071d4279SBram Moolenaar
14071d4279SBram Moolenaar" let others know that syntax has been switched on
15071d4279SBram Moolenaarlet syntax_on = 1
16071d4279SBram Moolenaar
17071d4279SBram Moolenaar" Set the default highlighting colors.  Use a color scheme if specified.
18071d4279SBram Moolenaarif exists("colors_name")
19071d4279SBram Moolenaar  exe "colors " . colors_name
20071d4279SBram Moolenaarelse
21071d4279SBram Moolenaar  runtime! syntax/syncolor.vim
22071d4279SBram Moolenaarendif
23071d4279SBram Moolenaar
24071d4279SBram Moolenaar" Line continuation is used here, remove 'C' from 'cpoptions'
25071d4279SBram Moolenaarlet s:cpo_save = &cpo
26071d4279SBram Moolenaarset cpo&vim
27071d4279SBram Moolenaar
28071d4279SBram Moolenaar" First remove all old syntax autocommands.
29071d4279SBram Moolenaarau! Syntax
30071d4279SBram Moolenaar
31071d4279SBram Moolenaarau Syntax *		call s:SynSet()
32071d4279SBram Moolenaar
33071d4279SBram Moolenaarfun! s:SynSet()
34071d4279SBram Moolenaar  " clear syntax for :set syntax=OFF  and any syntax name that doesn't exist
35071d4279SBram Moolenaar  syn clear
36071d4279SBram Moolenaar  if exists("b:current_syntax")
37071d4279SBram Moolenaar    unlet b:current_syntax
38071d4279SBram Moolenaar  endif
39071d4279SBram Moolenaar
40071d4279SBram Moolenaar  let s = expand("<amatch>")
41071d4279SBram Moolenaar  if s == "ON"
42071d4279SBram Moolenaar    " :set syntax=ON
43071d4279SBram Moolenaar    if &filetype == ""
44071d4279SBram Moolenaar      echohl ErrorMsg
45071d4279SBram Moolenaar      echo "filetype unknown"
46071d4279SBram Moolenaar      echohl None
47071d4279SBram Moolenaar    endif
48071d4279SBram Moolenaar    let s = &filetype
4997cc2384SBram Moolenaar  elseif s == "OFF"
5097cc2384SBram Moolenaar    let s = ""
51071d4279SBram Moolenaar  endif
52071d4279SBram Moolenaar
53071d4279SBram Moolenaar  if s != ""
5497b2ad35SBram Moolenaar    " Load the syntax file(s).  When there are several, separated by dots,
55*2c7f8c57SBram Moolenaar    " load each in sequence.  Skip empty entries.
5697b2ad35SBram Moolenaar    for name in split(s, '\.')
57*2c7f8c57SBram Moolenaar      if !empty(name)
5897b2ad35SBram Moolenaar	exe "runtime! syntax/" . name . ".vim syntax/" . name . "/*.vim"
59*2c7f8c57SBram Moolenaar      endif
6097b2ad35SBram Moolenaar    endfor
61071d4279SBram Moolenaar  endif
62071d4279SBram Moolenaarendfun
63071d4279SBram Moolenaar
64071d4279SBram Moolenaar
65fc39ecf8SBram Moolenaar" Handle adding doxygen to other languages (C, C++, C#, IDL, java, php, DataScript)
66fc39ecf8SBram Moolenaarau Syntax c,cpp,cs,idl,java,php,datascript
67d4755bb0SBram Moolenaar	\ if (exists('b:load_doxygen_syntax') && b:load_doxygen_syntax)
68d4755bb0SBram Moolenaar	\	|| (exists('g:load_doxygen_syntax') && g:load_doxygen_syntax)
6997b2ad35SBram Moolenaar	\   | runtime! syntax/doxygen.vim
70d4755bb0SBram Moolenaar	\ | endif
71d4755bb0SBram Moolenaar
72d4755bb0SBram Moolenaar
73071d4279SBram Moolenaar" Source the user-specified syntax highlighting file
7425de4c23SBram Moolenaarif exists("mysyntaxfile")
7525de4c23SBram Moolenaar  let s:fname = expand(mysyntaxfile)
7625de4c23SBram Moolenaar  if filereadable(s:fname)
7725de4c23SBram Moolenaar    execute "source " . fnameescape(s:fname)
7825de4c23SBram Moolenaar  endif
79071d4279SBram Moolenaarendif
80071d4279SBram Moolenaar
81071d4279SBram Moolenaar" Restore 'cpoptions'
82071d4279SBram Moolenaarlet &cpo = s:cpo_save
83071d4279SBram Moolenaarunlet s:cpo_save
84