Mercurial > vim
diff runtime/indent/vim.vim @ 23737:34b4eb3a8458
Update runtime files.
Commit: https://github.com/vim/vim/commit/e0e3917554327f2524066f89fbbef9c83c1535da
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Jan 25 21:14:57 2021 +0100
Update runtime files.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 25 Jan 2021 21:30:05 +0100 |
parents | e2e2cc5d0856 |
children | 5b37a0bf7e3a |
line wrap: on
line diff
--- 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 @@ function GetVimIndentIntern() " 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 @@ function GetVimIndentIntern() 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 @@ function GetVimIndentIntern() 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