aboutsummaryrefslogtreecommitdiff
path: root/runtime/syntax
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-04-19 14:50:12 +0800
committerGitHub <noreply@github.com>2024-04-19 14:50:12 +0800
commit8d77061051d3d5e7b0eb067a0bf776f2c62a7133 (patch)
tree742c202d3c09c66a46120225be9f00da85d7d793 /runtime/syntax
parent3e6a9fb599f0a774a62cb1090d89202af68aba63 (diff)
downloadrneovim-8d77061051d3d5e7b0eb067a0bf776f2c62a7133.tar.gz
rneovim-8d77061051d3d5e7b0eb067a0bf776f2c62a7133.tar.bz2
rneovim-8d77061051d3d5e7b0eb067a0bf776f2c62a7133.zip
vim-patch:9.1.0354: runtime(uci): No support for uci file types (#28409)
Problem: runtime(uci): No support for uci file types (Wu, Zhenyu) Solution: include basic uci ftplugin and syntax plugins (Colin Caine) closes: vim/vim#14575 https://github.com/vim/vim/commit/4b3fab14dbde971f15d8783e9ef125b19fdbc829 Co-authored-by: Colin Caine <complaints@cmcaine.co.uk> Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
Diffstat (limited to 'runtime/syntax')
-rw-r--r--runtime/syntax/uci.vim33
1 files changed, 33 insertions, 0 deletions
diff --git a/runtime/syntax/uci.vim b/runtime/syntax/uci.vim
new file mode 100644
index 0000000000..fdf5bfd9b3
--- /dev/null
+++ b/runtime/syntax/uci.vim
@@ -0,0 +1,33 @@
+" Vim syntax file
+" Language: OpenWrt Unified Configuration Interface
+" Maintainer: Colin Caine <complaints@cmcaine.co.uk>
+" Upstream: https://github.com/cmcaine/vim-uci
+" Last Change: 2021 Sep 19
+"
+" For more information on uci, see https://openwrt.org/docs/guide-user/base-system/uci
+
+if exists("b:current_syntax")
+ finish
+endif
+
+" Fancy zero-width non-capturing look-behind to see what the last word was.
+" Would be really nice if there was some less obscure or more efficient way to
+" do this.
+syntax match uciOptionName '\%(\%(option\|list\)\s\+\)\@<=\S*'
+syntax match uciConfigName '\%(\%(package\|config\)\s\+\)\@<=\S*'
+syntax keyword uciConfigDec package config nextgroup=uciConfigName skipwhite
+syntax keyword uciOptionType option list nextgroup=uciOptionName skipwhite
+
+" Standard matches.
+syntax match uciComment "#.*$"
+syntax region uciString start=+"+ end=+"+ skip=+\\"+
+syntax region uciString start=+'+ end=+'+ skip=+\\'+
+
+highlight default link uciConfigName Identifier
+highlight default link uciOptionName Constant
+highlight default link uciConfigDec Statement
+highlight default link uciOptionType Type
+highlight default link uciComment Comment
+highlight default link uciString Normal
+
+let b:current_syntax = "uci"