Update runtime files.
diff --git a/runtime/indent/fortran.vim b/runtime/indent/fortran.vim
index 6963202..26ed33a 100644
--- a/runtime/indent/fortran.vim
+++ b/runtime/indent/fortran.vim
@@ -74,11 +74,15 @@
if (b:fortran_fixed_source == 1)
setlocal indentexpr=FortranGetFixedIndent()
if exists("*FortranGetFixedIndent")
+ let &cpoptions = s:cposet
+ unlet s:cposet
finish
endif
else
setlocal indentexpr=FortranGetFreeIndent()
if exists("*FortranGetFreeIndent")
+ let &cpoptions = s:cposet
+ unlet s:cposet
finish
endif
endif
@@ -213,7 +217,7 @@
return ind
endfunction
-let &cpoptions=s:cposet
+let &cpoptions = s:cposet
unlet s:cposet
" vim:sw=2 tw=130
diff --git a/runtime/indent/testdir/vim.in b/runtime/indent/testdir/vim.in
index 47e6929..f652dbd 100644
--- a/runtime/indent/testdir/vim.in
+++ b/runtime/indent/testdir/vim.in
@@ -10,6 +10,11 @@
\ 'some '
\ 'string'
+if 1
+let x = [
+\ ]
+endif
+
" END_INDENT
" START_INDENT
diff --git a/runtime/indent/testdir/vim.ok b/runtime/indent/testdir/vim.ok
index 3f53c52..b8592c1 100644
--- a/runtime/indent/testdir/vim.ok
+++ b/runtime/indent/testdir/vim.ok
@@ -10,6 +10,11 @@
\ 'some '
\ 'string'
+if 1
+ let x = [
+ \ ]
+endif
+
" END_INDENT
" START_INDENT
diff --git a/runtime/indent/vim.vim b/runtime/indent/vim.vim
index 3e502c9..b031d1f 100644
--- a/runtime/indent/vim.vim
+++ b/runtime/indent/vim.vim
@@ -1,7 +1,7 @@
" Vim indent file
" Language: Vim script
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2021 Jan 06
+" Last Change: 2021 Jan 21
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -38,6 +38,9 @@
" Find a non-blank line above the current line.
let lnum = prevnonblank(v:lnum - 1)
+ " The previous line, ignoring line continuation
+ let prev_text_end = lnum > 0 ? getline(lnum) : ''
+
" If the current line doesn't start with '\' or '"\ ' and below a line that
" starts with '\' or '"\ ', use the indent of the line above it.
let cur_text = getline(v:lnum)
@@ -51,6 +54,8 @@
if lnum == 0
return 0
endif
+
+ " the start of the previous line, skipping over line continuation
let prev_text = getline(lnum)
let found_cont = 0
@@ -147,13 +152,13 @@
endif
" Below a line starting with "]" we must be below the end of a list.
- if prev_text =~ '^\s*]'
+ if prev_text_end =~ '^\s*]'
let ind = ind - shiftwidth()
endif
" A line ending in "{"/"[} is most likely the start of a dict/list literal,
" indent the next line more. Not for a continuation line.
- if prev_text =~ '[{[]\s*$' && !found_cont
+ if prev_text_end =~ '[{[]\s*$' && !found_cont
let ind = ind + shiftwidth()
endif
diff --git a/runtime/indent/yaml.vim b/runtime/indent/yaml.vim
index 26e14ef..8dca5cd 100644
--- a/runtime/indent/yaml.vim
+++ b/runtime/indent/yaml.vim
@@ -2,16 +2,13 @@
" Language: YAML
" Maintainer: Nikolai Pavlov <zyx.vim@gmail.com>
" Last Update: Lukas Reineke
-" Last Change: 2020 Jun 07
+" Last Change: 2021 Jan 19
" Only load this indent file when no other was loaded.
if exists('b:did_indent')
finish
endif
-let s:save_cpo = &cpo
-set cpo&vim
-
let b:did_indent = 1
setlocal indentexpr=GetYAMLIndent(v:lnum)
@@ -25,6 +22,9 @@
finish
endif
+let s:save_cpo = &cpo
+set cpo&vim
+
function s:FindPrevLessIndentedLine(lnum, ...)
let prevlnum = prevnonblank(a:lnum-1)
let curindent = a:0 ? a:1 : indent(a:lnum)