vim-patch:79da22d: runtime(kdl): fix KdlIndent and kdlComment in indent script (vim/vim#15019)

79da22de75

Co-authored-by: Yinzuo Jiang <jiangyinzuo@foxmail.com>
This commit is contained in:
Christian Clason 2024-06-16 11:30:17 +02:00
parent 2f87d363c1
commit 615e859a0e
2 changed files with 19 additions and 12 deletions

View File

@ -2,7 +2,7 @@
" Language: KDL " Language: KDL
" Author: Aram Drevekenin <aram@poor.dev> " Author: Aram Drevekenin <aram@poor.dev>
" Maintainer: Yinzuo Jiang <jiangyinzuo@foxmail.com> " Maintainer: Yinzuo Jiang <jiangyinzuo@foxmail.com>
" Last Change: 2024-06-11 " Last Change: 2024-06-16
" Only load this indent file when no other was loaded. " Only load this indent file when no other was loaded.
if exists("b:did_indent") if exists("b:did_indent")
@ -14,13 +14,17 @@ setlocal indentexpr=KdlIndent()
let b:undo_indent = "setlocal indentexpr<" let b:undo_indent = "setlocal indentexpr<"
function! KdlIndent(...) function! KdlIndent(...)
let line = getline(v:lnum) let line = substitute(getline(v:lnum), '//.*$', '', '')
let previousNum = prevnonblank(v:lnum - 1) let previousNum = prevnonblank(v:lnum - 1)
let previous = getline(previousNum) let previous = substitute(getline(previousNum), '//.*$', '', '')
if previous =~ "{" && previous !~ "}" && line !~ "}" && line !~ ":$" let l:indent = indent(previousNum)
return indent(previousNum) + shiftwidth() if previous =~ "{" && previous !~ "}"
else let l:indent += shiftwidth()
return indent(previousNum)
endif endif
if line =~ "}" && line !~ "{"
let l:indent -= shiftwidth()
endif
return l:indent
endfunction endfunction
" vim: sw=2 sts=2 et

View File

@ -2,7 +2,7 @@
" Language: KDL " Language: KDL
" Maintainer: Aram Drevekenin <aram@poor.dev> " Maintainer: Aram Drevekenin <aram@poor.dev>
" Maintainer: Yinzuo Jiang <jiangyinzuo@foxmail.com> " Maintainer: Yinzuo Jiang <jiangyinzuo@foxmail.com>
" Latest Revision: 2024-06-10 " Latest Revision: 2024-06-16
" quit when a syntax file was already loaded " quit when a syntax file was already loaded
if exists("b:current_syntax") if exists("b:current_syntax")
@ -13,7 +13,8 @@ syn match kdlNode '\v(\w|-|\=)' display
syn match kdlBool '\v(true|false)' display syn match kdlBool '\v(true|false)' display
syn keyword kdlTodo contained TODO FIXME XXX NOTE syn keyword kdlTodo contained TODO FIXME XXX NOTE
syn match kdlComment "//.*$" contains=kdlTodo syn region kdlComment start="//" end="$" contains=kdlTodo,@Spell
syn region kdlComment start="/\*" end="\*/" contains=kdlTodo,@Spell
" Regular int like number with - + or nothing in front " Regular int like number with - + or nothing in front
syn match kdlNumber '\d\+' syn match kdlNumber '\d\+'
@ -22,17 +23,17 @@ syn match kdlNumber '[-+]\d\+'
" Floating point number with decimal no E or e (+,-) " Floating point number with decimal no E or e (+,-)
syn match kdlNumber '\d\+\.\d*' contained display syn match kdlNumber '\d\+\.\d*' contained display
syn match kdlNumber '[-+]\d\+\.\d*' contained display syn match kdlNumber '[-+]\d\+\.\d*' contained display
" Floating point like number with E and no decimal point (+,-) " 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
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 (+,-) " 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 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 kdlString start='"' end='"' skip='\\\\\|\\"' display
syn region kdlChildren start="{" end="}" contains=kdlString,kdlNumber,kdlNode,kdlBool,kdlComment syn region kdlChildren start="{" end="}" contains=kdlString,kdlNumber,kdlNode,kdlBool,kdlComment
hi def link kdlTodo Todo hi def link kdlTodo Todo
@ -43,3 +44,5 @@ hi def link kdlString String
hi def link kdlNumber Number hi def link kdlNumber Number
let b:current_syntax = "kdl" let b:current_syntax = "kdl"
" vim: sw=2 sts=2 et