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