mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
runtime(kdl): include syntax, indent and ftplugin files
closes: #14956 Co-authored-by: Aram Drevekenin <aram@poor.dev> Signed-off-by: inzuo Jiang <jiangyinzuo@foxmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
parent
d03882baac
commit
2d88210b3c
3
.github/MAINTAINERS
vendored
3
.github/MAINTAINERS
vendored
@ -175,6 +175,7 @@ runtime/ftplugin/jsonc.vim @izhakjakov
|
|||||||
runtime/ftplugin/julia.vim @carlobaldassi
|
runtime/ftplugin/julia.vim @carlobaldassi
|
||||||
runtime/ftplugin/jq.vim @vito-c
|
runtime/ftplugin/jq.vim @vito-c
|
||||||
runtime/ftplugin/kconfig.vim @chrisbra
|
runtime/ftplugin/kconfig.vim @chrisbra
|
||||||
|
runtime/ftplugin/kdl.vim @imsnif @jiangyinzuo
|
||||||
runtime/ftplugin/kotlin.vim @udalov
|
runtime/ftplugin/kotlin.vim @udalov
|
||||||
runtime/ftplugin/less.vim @genoma
|
runtime/ftplugin/less.vim @genoma
|
||||||
runtime/ftplugin/liquid.vim @tpope
|
runtime/ftplugin/liquid.vim @tpope
|
||||||
@ -292,6 +293,7 @@ runtime/indent/javascript.vim @bounceme
|
|||||||
runtime/indent/json.vim @elzr
|
runtime/indent/json.vim @elzr
|
||||||
runtime/indent/jsonc.vim @izhakjakov
|
runtime/indent/jsonc.vim @izhakjakov
|
||||||
runtime/indent/julia.vim @carlobaldassi
|
runtime/indent/julia.vim @carlobaldassi
|
||||||
|
runtime/indent/kdl.vim @imsnif @jiangyinzuo
|
||||||
runtime/indent/kotlin.vim @udalov
|
runtime/indent/kotlin.vim @udalov
|
||||||
runtime/indent/krl.vim @KnoP-01
|
runtime/indent/krl.vim @KnoP-01
|
||||||
runtime/indent/ld.vim @dkearns
|
runtime/indent/ld.vim @dkearns
|
||||||
@ -434,6 +436,7 @@ runtime/syntax/julia.vim @carlobaldassi
|
|||||||
runtime/syntax/jq.vim @vito-c
|
runtime/syntax/jq.vim @vito-c
|
||||||
runtime/syntax/kconfig.vim @chrisbra
|
runtime/syntax/kconfig.vim @chrisbra
|
||||||
runtime/syntax/kotlin.vim @udalov
|
runtime/syntax/kotlin.vim @udalov
|
||||||
|
runtime/syntax/kdl.vim @imsnif @jiangyinzuo
|
||||||
runtime/syntax/krl.vim @KnoP-01
|
runtime/syntax/krl.vim @KnoP-01
|
||||||
runtime/syntax/less.vim @genoma
|
runtime/syntax/less.vim @genoma
|
||||||
runtime/syntax/liquid.vim @tpope
|
runtime/syntax/liquid.vim @tpope
|
||||||
|
17
runtime/ftplugin/kdl.vim
Normal file
17
runtime/ftplugin/kdl.vim
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
" Vim filetype plugin
|
||||||
|
" Language: KDL
|
||||||
|
" Author: Aram Drevekenin <aram@poor.dev>
|
||||||
|
" Maintainer: Yinzuo Jiang <jiangyinzuo@foxmail.com>
|
||||||
|
" Last Change: 2024-06-10
|
||||||
|
|
||||||
|
if exists("b:did_ftplugin")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:did_ftplugin = 1
|
||||||
|
|
||||||
|
setlocal comments=://
|
||||||
|
setlocal commentstring=//\ %s
|
||||||
|
setlocal formatoptions-=t
|
||||||
|
|
||||||
|
let b:undo_ftplugin = 'setlocal comments< commentstring< formatoptions<'
|
26
runtime/indent/kdl.vim
Normal file
26
runtime/indent/kdl.vim
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
" Vim indent file
|
||||||
|
" Language: KDL
|
||||||
|
" Author: Aram Drevekenin <aram@poor.dev>
|
||||||
|
" Maintainer: Yinzuo Jiang <jiangyinzuo@foxmail.com>
|
||||||
|
" Last Change: 2024-06-10
|
||||||
|
|
||||||
|
" Only load this indent file when no other was loaded.
|
||||||
|
if exists("b:did_indent")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let b:did_indent = 1
|
||||||
|
|
||||||
|
setlocal indentexpr=KdlIndent()
|
||||||
|
let b:undo_indent = "setlocal indentexpr<"
|
||||||
|
|
||||||
|
function! KdlIndent(...)
|
||||||
|
let line = getline(v:lnum)
|
||||||
|
let previousNum = prevnonblank(v:lnum - 1)
|
||||||
|
let previous = getline(previousNum)
|
||||||
|
|
||||||
|
if previous =~ "{" && previous !~ "}" && line !~ "}" && line !~ ":$"
|
||||||
|
return indent(previousNum) + &tabstop
|
||||||
|
else
|
||||||
|
return indent(previousNum)
|
||||||
|
endif
|
||||||
|
endfunction
|
45
runtime/syntax/kdl.vim
Normal file
45
runtime/syntax/kdl.vim
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
" Vim syntax file
|
||||||
|
" Language: KDL
|
||||||
|
" Maintainer: Aram Drevekenin <aram@poor.dev>
|
||||||
|
" Maintainer: Yinzuo Jiang <jiangyinzuo@foxmail.com>
|
||||||
|
" Latest Revision: 2024-06-10
|
||||||
|
|
||||||
|
" quit when a syntax file was already loaded
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn match kdlNode '\v(\w|-|\=)' display
|
||||||
|
syn match kdlBool '\v(true|false)' display
|
||||||
|
|
||||||
|
syn keyword kdlTodo contained TODO FIXME XXX NOTE
|
||||||
|
syn match kdlComment "//.*$" contains=kdlTodo
|
||||||
|
|
||||||
|
" Regular int like number with - + or nothing in front
|
||||||
|
syn match kdlNumber '\d\+'
|
||||||
|
syn match kdlNumber '[-+]\d\+'
|
||||||
|
|
||||||
|
" Floating point number with decimal no E or e (+,-)
|
||||||
|
syn match kdlNumber '\d\+\.\d*' contained display
|
||||||
|
syn match kdlNumber '[-+]\d\+\.\d*' contained display
|
||||||
|
|
||||||
|
" Floating point like number with E and no decimal point (+,-)
|
||||||
|
syn match kdlNumber '[-+]\=\d[[:digit:]]*[eE][\-+]\=\d\+' contained display
|
||||||
|
syn match kdlNumber '\d[[:digit:]]*[eE][\-+]\=\d\+' contained display
|
||||||
|
|
||||||
|
" Floating point like number with E and decimal point (+,-)
|
||||||
|
syn match kdlNumber '[-+]\=\d[[:digit:]]*\.\d*[eE][\-+]\=\d\+' contained display
|
||||||
|
syn match kdlNumber '\d[[:digit:]]*\.\d*[eE][\-+]\=\d\+' contained display
|
||||||
|
|
||||||
|
syn region kdlString start='"' end='"' skip='\\\\\|\\"' display
|
||||||
|
|
||||||
|
syn region kdlChildren start="{" end="}" contains=kdlString,kdlNumber,kdlNode,kdlBool,kdlComment
|
||||||
|
|
||||||
|
hi def link kdlTodo Todo
|
||||||
|
hi def link kdlComment Comment
|
||||||
|
hi def link kdlNode Statement
|
||||||
|
hi def link kdlBool Boolean
|
||||||
|
hi def link kdlString String
|
||||||
|
hi def link kdlNumber Number
|
||||||
|
|
||||||
|
let b:current_syntax = "kdl"
|
Loading…
x
Reference in New Issue
Block a user