diff options
Diffstat (limited to 'runtime/syntax/synload.vim')
-rw-r--r-- | runtime/syntax/synload.vim | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/runtime/syntax/synload.vim b/runtime/syntax/synload.vim new file mode 100644 index 0000000..70e2d88 --- /dev/null +++ b/runtime/syntax/synload.vim @@ -0,0 +1,83 @@ +" Vim syntax support file +" Maintainer: Bram Moolenaar <Bram@vim.org> +" Last Change: 2022 Apr 12 + +" This file sets up for syntax highlighting. +" It is loaded from "syntax.vim" and "manual.vim". +" 1. Set the default highlight groups. +" 2. Install Syntax autocommands for all the available syntax files. + +if !has("syntax") + finish +endif + +" let others know that syntax has been switched on +let syntax_on = 1 + +" Set the default highlighting colors. Use a color scheme if specified. +if exists("colors_name") + exe "colors " . colors_name +else + runtime! syntax/syncolor.vim +endif + +" Line continuation is used here, remove 'C' from 'cpoptions' +let s:cpo_save = &cpo +set cpo&vim + +" First remove all old syntax autocommands. +au! Syntax + +au Syntax * call s:SynSet() + +fun! s:SynSet() + " clear syntax for :set syntax=OFF and any syntax name that doesn't exist + syn clear + if exists("b:current_syntax") + unlet b:current_syntax + endif + + 0verbose let s = expand("<amatch>") + if s == "ON" + " :set syntax=ON + if &filetype == "" + echohl ErrorMsg + echo "filetype unknown" + echohl None + endif + let s = &filetype + elseif s == "OFF" + let s = "" + endif + + if s != "" + " Load the syntax file(s). When there are several, separated by dots, + " load each in sequence. Skip empty entries. + for name in split(s, '\.') + if !empty(name) + exe "runtime! syntax/" . name . ".vim syntax/" . name . "/*.vim" + endif + endfor + endif +endfun + + +" Handle adding doxygen to other languages (C, C++, C#, IDL, java, php, DataScript) +au Syntax c,cpp,cs,idl,java,php,datascript + \ if (exists('b:load_doxygen_syntax') && b:load_doxygen_syntax) + \ || (exists('g:load_doxygen_syntax') && g:load_doxygen_syntax) + \ | runtime! syntax/doxygen.vim + \ | endif + + +" Source the user-specified syntax highlighting file +if exists("mysyntaxfile") + let s:fname = expand(mysyntaxfile) + if filereadable(s:fname) + execute "source " . fnameescape(s:fname) + endif +endif + +" Restore 'cpoptions' +let &cpo = s:cpo_save +unlet s:cpo_save |