2014-07-10 21:05:51 -07:00
|
|
|
" Vim syntax support file
|
|
|
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
2022-04-19 06:14:17 -07:00
|
|
|
" Last Change: 2022 Apr 12
|
2014-07-10 21:05:51 -07:00
|
|
|
|
|
|
|
" 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
|
|
|
|
|
|
|
|
" 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
|
|
|
|
|
|
|
|
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,
|
2021-04-27 20:14:29 -07:00
|
|
|
" load each in sequence. Skip empty entries.
|
2014-07-10 21:05:51 -07:00
|
|
|
for name in split(s, '\.')
|
2021-04-27 20:14:29 -07:00
|
|
|
if !empty(name)
|
2021-06-02 08:08:28 -07:00
|
|
|
exe "runtime! syntax/" . name . ".vim syntax/" . name . "/*.vim"
|
|
|
|
exe "runtime! syntax/" . name . ".lua syntax/" . name . "/*.lua"
|
2021-04-27 20:14:29 -07:00
|
|
|
endif
|
2014-07-10 21:05:51 -07:00
|
|
|
endfor
|
|
|
|
endif
|
|
|
|
endfun
|
|
|
|
|
|
|
|
|
2016-04-16 17:33:36 -07:00
|
|
|
" Handle adding doxygen to other languages (C, C++, C#, IDL, java, php, DataScript)
|
|
|
|
au Syntax c,cpp,cs,idl,java,php,datascript
|
2014-07-10 21:05:51 -07:00
|
|
|
\ 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
|
2017-04-28 16:53:03 -07:00
|
|
|
if exists("mysyntaxfile")
|
|
|
|
let s:fname = expand(mysyntaxfile)
|
|
|
|
if filereadable(s:fname)
|
|
|
|
execute "source " . fnameescape(s:fname)
|
|
|
|
endif
|
2014-07-10 21:05:51 -07:00
|
|
|
endif
|
|
|
|
|
|
|
|
" Restore 'cpoptions'
|
|
|
|
let &cpo = s:cpo_save
|
|
|
|
unlet s:cpo_save
|