runtime(kdl): fix KdlIndent and kdlComment in indent script (#15019) Commit: https://github.com/vim/vim/commit/79da22de755e28bd8d4f58fc4bf34cf94f45de63 Author: Yinzuo Jiang <jiangyin...@foxmail.com> Date: Sun Jun 16 14:47:47 2024 +0800
runtime(kdl): fix KdlIndent and kdlComment in indent script (https://github.com/vim/vim/issues/15019) Signed-off-by: Yinzuo Jiang <jiangyin...@foxmail.com> Signed-off-by: Christian Brabandt <c...@256bit.org> diff --git a/runtime/indent/kdl.vim b/runtime/indent/kdl.vim index b1b004d0a..b0a6bd90d 100644 --- a/runtime/indent/kdl.vim +++ b/runtime/indent/kdl.vim @@ -2,7 +2,7 @@ " Language: KDL " Author: Aram Drevekenin <a...@poor.dev> " Maintainer: Yinzuo Jiang <jiangyin...@foxmail.com> -" Last Change: 2024-06-11 +" Last Change: 2024-06-16 " Only load this indent file when no other was loaded. if exists("b:did_indent") @@ -14,13 +14,17 @@ setlocal indentexpr=KdlIndent() let b:undo_indent = "setlocal indentexpr<" function! KdlIndent(...) - let line = getline(v:lnum) + let line = substitute(getline(v:lnum), '//.*$', '', '') let previousNum = prevnonblank(v:lnum - 1) - let previous = getline(previousNum) + let previous = substitute(getline(previousNum), '//.*$', '', '') - if previous =~ "{" && previous !~ "}" && line !~ "}" && line !~ ":$" - return indent(previousNum) + shiftwidth() - else - return indent(previousNum) + let l:indent = indent(previousNum) + if previous =~ "{" && previous !~ "}" + let l:indent += shiftwidth() endif + if line =~ "}" && line !~ "{" + let l:indent -= shiftwidth() + endif + return l:indent endfunction +" vim: sw=2 sts=2 et diff --git a/runtime/syntax/kdl.vim b/runtime/syntax/kdl.vim index a36bb9e92..97e8f93b6 100644 --- a/runtime/syntax/kdl.vim +++ b/runtime/syntax/kdl.vim @@ -2,7 +2,7 @@ " Language: KDL " Maintainer: Aram Drevekenin <a...@poor.dev> " Maintainer: Yinzuo Jiang <jiangyin...@foxmail.com> -" Latest Revision: 2024-06-10 +" Latest Revision: 2024-06-16 " quit when a syntax file was already loaded if exists("b:current_syntax") @@ -13,7 +13,8 @@ syn match kdlNode ' (\w|-|\=)' display syn match kdlBool ' (true|false)' display 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 syn match kdlNumber '\d\+' @@ -22,17 +23,17 @@ 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 @@ -43,3 +44,5 @@ hi def link kdlString String hi def link kdlNumber Number let b:current_syntax = "kdl" + +" vim: sw=2 sts=2 et -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/E1sIjrx-00FxZj-H1%40256bit.org.