1" Vim syntax support file 2" Maintainer: Bram Moolenaar <[email protected]> 3" Last Change: 2020 Apr 13 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 elseif s == "OFF" 50 let s = "" 51 endif 52 53 if s != "" 54 " Load the syntax file(s). When there are several, separated by dots, 55 " load each in sequence. Skip empty entries. 56 for name in split(s, '\.') 57 if !empty(name) 58 exe "runtime! syntax/" . name . ".vim syntax/" . name . "/*.vim" 59 endif 60 endfor 61 endif 62endfun 63 64 65" Handle adding doxygen to other languages (C, C++, C#, IDL, java, php, DataScript) 66au Syntax c,cpp,cs,idl,java,php,datascript 67 \ if (exists('b:load_doxygen_syntax') && b:load_doxygen_syntax) 68 \ || (exists('g:load_doxygen_syntax') && g:load_doxygen_syntax) 69 \ | runtime! syntax/doxygen.vim 70 \ | endif 71 72 73" Source the user-specified syntax highlighting file 74if exists("mysyntaxfile") 75 let s:fname = expand(mysyntaxfile) 76 if filereadable(s:fname) 77 execute "source " . fnameescape(s:fname) 78 endif 79endif 80 81" Restore 'cpoptions' 82let &cpo = s:cpo_save 83unlet s:cpo_save 84