Update runtime files

This commit is contained in:
Bram Moolenaar
2022-09-04 17:45:43 +01:00
parent 806a273f3c
commit 0daafaa7d9
39 changed files with 922 additions and 687 deletions

View File

@ -11,6 +11,7 @@ syn on
set nowrapscan
set report=9999
set modeline
set debug=throw
au! SwapExists * call HandleSwapExists()
func HandleSwapExists()
@ -84,7 +85,12 @@ for fname in glob('testdir/*.in', 1, 1)
exe start + 1
if pattern == ''
exe 'normal =' . (end - 1) . 'G'
try
exe 'normal =' . (end - 1) . 'G'
catch
call append(indent_at, 'ERROR: ' . v:exception)
let failed = 1
endtry
else
let lnum = search(pattern)
if lnum <= 0
@ -99,7 +105,12 @@ for fname in glob('testdir/*.in', 1, 1)
else
exe lnum - 1
endif
normal ==
try
normal ==
catch
call append(indent_at, 'ERROR: ' . v:exception)
let failed = 1
endtry
endif
endif
endwhile

View File

@ -36,6 +36,13 @@ let t = [
\ },
\ ]
def Func()
var d = dd
->extend({
})
eval 0
enddef
" END_INDENT
" START_INDENT

View File

@ -36,6 +36,13 @@ let t = [
\ },
\ ]
def Func()
var d = dd
->extend({
})
eval 0
enddef
" END_INDENT
" START_INDENT

View File

@ -33,7 +33,9 @@ function GetVimIndent()
endtry
endfunc
let s:lineContPat = '^\s*\(\\\|"\\ \)'
" Legacy script line continuation and Vim9 script operators that must mean an
" expression that continues from the previous line.
let s:lineContPat = '^\s*\(\\\|"\\ \|->\)'
function GetVimIndentIntern()
" If the current line has line continuation and the previous one too, use
@ -133,15 +135,15 @@ function GetVimIndentIntern()
endif
endif
" For a line starting with "}" find the matching "{". If it is at the start
" of the line align with it, probably end of a block.
" For a line starting with "}" find the matching "{". Align with that line,
" it is either the matching block start or dictionary start.
" Use the mapped "%" from matchit to find the match, otherwise we may match
" a { inside a comment or string.
if cur_text =~ '^\s*}'
if maparg('%') != ''
exe v:lnum
silent! normal %
if line('.') < v:lnum && getline('.') =~ '^\s*{'
if line('.') < v:lnum
let ind = indent('.')
endif
else
@ -149,19 +151,33 @@ function GetVimIndentIntern()
endif
endif
" Below a line starting with "}" find the matching "{". If it is at the
" end of the line we must be below the end of a dictionary.
if prev_text =~ '^\s*}'
if maparg('%') != ''
exe lnum
silent! normal %
if line('.') == lnum || getline('.') !~ '^\s*{'
let ind = ind - shiftwidth()
" Look back for a line to align with
while lnum > 1
" Below a line starting with "}" find the matching "{".
if prev_text =~ '^\s*}'
if maparg('%') != ''
exe lnum
silent! normal %
if line('.') < lnum
let lnum = line('.')
let ind = indent(lnum)
let prev_text = getline(lnum)
else
break
endif
else
" todo: use searchpair() to find a match
break
endif
elseif prev_text =~ s:lineContPat
" looks like a continuation like, go back one line
let lnum = lnum - 1
let ind = indent(lnum)
let prev_text = getline(lnum)
else
" todo: use searchpair() to find a match
break
endif
endif
endwhile
" Below a line starting with "]" we must be below the end of a list.
" Include a "}" and "},} in case a dictionary ends too.

View File

@ -1,7 +1,7 @@
" Vim indent file
" Language: YAML
" Maintainer: Nikolai Pavlov <zyx.vim@gmail.com>
" Last Update: Lukas Reineke
" Last Updates: Lukas Reineke, "lacygoill"
" Last Change: 2022 Jun 17
" Only load this indent file when no other was loaded.
@ -29,8 +29,8 @@ function s:FindPrevLessIndentedLine(lnum, ...)
let prevlnum = prevnonblank(a:lnum-1)
let curindent = a:0 ? a:1 : indent(a:lnum)
while prevlnum
\&& indent(prevlnum) >= curindent
\&& getline(prevlnum) !~# '^\s*#'
\ && indent(prevlnum) >= curindent
\ && getline(prevlnum) !~# '^\s*#'
let prevlnum = prevnonblank(prevlnum-1)
endwhile
return prevlnum
@ -54,7 +54,7 @@ let s:c_ns_anchor_name = s:c_ns_anchor_char .. '+'
let s:c_ns_anchor_property = '\v\&' .. s:c_ns_anchor_name
let s:ns_word_char = '\v[[:alnum:]_\-]'
let s:ns_tag_char = '\v%(%\x\x|' .. s:ns_word_char .. '|[#/;?:@&=+$.~*''()])'
let s:ns_tag_char = '\v%(\x\x|' .. s:ns_word_char .. '|[#/;?:@&=+$.~*''()])'
let s:c_named_tag_handle = '\v\!' .. s:ns_word_char .. '+\!'
let s:c_secondary_tag_handle = '\v\!\!'
let s:c_primary_tag_handle = '\v\!'
@ -63,7 +63,7 @@ let s:c_tag_handle = '\v%(' .. s:c_named_tag_handle.
\ '|' .. s:c_primary_tag_handle .. ')'
let s:c_ns_shorthand_tag = '\v' .. s:c_tag_handle .. s:ns_tag_char .. '+'
let s:c_non_specific_tag = '\v\!'
let s:ns_uri_char = '\v%(%\x\x|' .. s:ns_word_char .. '\v|[#/;?:@&=+$,.!~*''()[\]])'
let s:ns_uri_char = '\v%(\x\x|' .. s:ns_word_char .. '\v|[#/;?:@&=+$,.!~*''()[\]])'
let s:c_verbatim_tag = '\v\!\<' .. s:ns_uri_char.. '+\>'
let s:c_ns_tag_property = '\v' .. s:c_verbatim_tag.
\ '\v|' .. s:c_ns_shorthand_tag.