mirror of
https://github.com/neovim/neovim.git
synced 2024-09-17 20:58:20 -04:00
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:
parent
2f87d363c1
commit
615e859a0e
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user