mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 11:15:14 -07:00
b75659c8fb
runtime(dosini): save and restore cpo value in syntax script
Commit dd0ad2598898c2b4641c4acd5b70b6184fa698ed introduced
line-continuation. However, to make sure this does not cause an error
when Vim is run in compatible mode, we need to set compatibility mode
temporarily and reset it back when finished reading the file.
This fixes: https://groups.google.com/g/vim_use/c/9zccgo_RIqM/m/xlUmhBktBgAJ
6909639249
Co-authored-by: Christian Brabandt <cb@256bit.org>
50 lines
1.5 KiB
VimL
50 lines
1.5 KiB
VimL
" Vim syntax file
|
|
" Language: Configuration File (ini file) for MSDOS/MS Windows
|
|
" Version: 2.3
|
|
" Original Author: Sean M. McKee <mckee@misslink.net>
|
|
" Previous Maintainer: Nima Talebi <nima@it.net.au>
|
|
" Current Maintainer: Hong Xu <hong@topbug.net>
|
|
" Homepage: http://www.vim.org/scripts/script.php?script_id=3747
|
|
" Repository: https://github.com/xuhdev/syntax-dosini.vim
|
|
" Last Change: 2023 Aug 20
|
|
|
|
|
|
" quit when a syntax file was already loaded
|
|
if exists("b:current_syntax")
|
|
finish
|
|
endif
|
|
|
|
" using of line-continuation requires cpo&vim
|
|
let s:cpo_save = &cpo
|
|
set cpo&vim
|
|
|
|
" shut case off
|
|
syn case ignore
|
|
|
|
syn match dosiniLabel "^.\{-}\ze\s*=" nextgroup=dosiniNumber,dosiniValue
|
|
syn match dosiniValue "=\zs.*"
|
|
syn match dosiniNumber "=\zs\s*\d\+\s*$"
|
|
syn match dosiniNumber "=\zs\s*\d*\.\d\+\s*$"
|
|
syn match dosiniNumber "=\zs\s*\d\+e[+-]\=\d\+\s*$"
|
|
syn region dosiniHeader start="^\s*\[" end="\]"
|
|
syn match dosiniComment "^[#;].*$"
|
|
syn region dosiniSection start="\s*\[.*\]" end="\ze\s*\[.*\]" fold
|
|
\ contains=dosiniLabel,dosiniValue,dosiniNumber,dosiniHeader,dosiniComment
|
|
|
|
" Define the default highlighting.
|
|
" Only when an item doesn't have highlighting yet
|
|
|
|
hi def link dosiniNumber Number
|
|
hi def link dosiniHeader Special
|
|
hi def link dosiniComment Comment
|
|
hi def link dosiniLabel Type
|
|
hi def link dosiniValue String
|
|
|
|
|
|
let b:current_syntax = "dosini"
|
|
|
|
let &cpo = s:cpo_save
|
|
unlet s:cpo_save
|
|
|
|
" vim: sts=2 sw=2 et
|