comparison runtime/autoload/dist/vimindent.vim @ 32721:94f4a488412e v9.0.1683

Updated runtime files Commit: https://github.com/vim/vim/commit/6efb1980336ff324e9c57a4e282530b952fca816 Author: Christian Brabandt <cb@256bit.org> Date: Thu Aug 10 05:44:25 2023 +0200 Updated runtime files This is a collection of various PRs from github that all require a minor patch number: 1) https://github.com/vim/vim/pull/12612 Do not conflate dictionary key with end of block 2) https://github.com/vim/vim/pull/12729: When saving and restoring 'undolevels', the constructs `&undolevels` and `:set undolevels` are problematic. The construct `&undolevels` reads an unpredictable value; it will be the local option value (if one has been set), or the global option value (otherwise), making it unsuitable for saving a value for later restoration. Similarly, if a local option value has been set for 'undolevels', temporarily modifying the option via `:set undolevels` changes the local value as well as the global value, requiring extra work to restore both values. Saving and restoring the option value in one step via the construct `:let &undolevels = &undolevels` appears to make no changes to the 'undolevels' option, but if a local option has been set to a different value than the global option, it has the unintended effect of changing the global 'undolevels' value to the local value. Update the documentation to explain these issues and recommend explicit use of global and local option values when saving and restoring. Update some unit tests to use `g:undolevels`. 3) https://github.com/vim/vim/pull/12702: Problem: Pip requirements files are not recognized. Solution: Add a pattern to match pip requirements files. 4) https://github.com/vim/vim/pull/12688: Add indent file and tests for ABB Rapid 5) https://github.com/vim/vim/pull/12668: Use Lua 5.1 numeric escapes in tests and add to CI Only Lua 5.2+ and LuaJIT understand hexadecimal escapes in strings. Lua 5.1 only supports decimal escapes: > A character in a string can also be specified by its numerical value > using the escape sequence \ddd, where ddd is a sequence of up to three > decimal digits. (Note that if a numerical escape is to be followed by a > digit, it must be expressed using exactly three digits.) Strings in Lua > can contain any 8-bit value, including embedded zeros, which can be > specified as '\0'. To make sure this works with Lua 5.4 and Lua 5.1 change the Vim CI to run with Lua 5.1 as well as Lua 5.4 6) https://github.com/vim/vim/pull/12631: Add hurl filetype detection 7) https://github.com/vim/vim/pull/12573: Problem: Files for haskell persistent library are not recognized Solution: Add pattern persistentmodels for haskell persistent library closes: #12612 closes: #12729 closes: #12702 closes: #12688 closes: #12668 closes: #12631 closes: #12573 Co-authored-by: lacygoill <lacygoill@lacygoill.me> Co-authored-by: Michael Henry <drmikehenry@drmikehenry.com> Co-authored-by: ObserverOfTime <chronobserver@disroot.org> Co-authored-by: KnoP-01 <knosowski@graeffrobotics.de> Co-authored-by: James McCoy <jamessan@jamessan.com> Co-authored-by: Jacob Pfeifer <jacob@pfeifer.dev> Co-authored-by: Borys Lykah <lykahb@fastmail.com>
author Christian Brabandt <cb@256bit.org>
date Thu, 10 Aug 2023 06:30:06 +0200
parents b2412874362f
children 5b46a975e48a
comparison
equal deleted inserted replaced
32720:a34d49643187 32721:94f4a488412e
1 vim9script 1 vim9script
2 2
3 # Language: Vim script 3 # Language: Vim script
4 # Maintainer: github user lacygoill 4 # Maintainer: github user lacygoill
5 # Last Change: 2023 Feb 01 5 # Last Change: 2023 Jun 29
6 6
7 # NOTE: Whenever you change the code, make sure the tests are still passing: 7 # NOTE: Whenever you change the code, make sure the tests are still passing:
8 # 8 #
9 # $ cd runtime/indent/ 9 # $ cd runtime/indent/
10 # $ make clean; make test || vimdiff testdir/vim.{ok,fail} 10 # $ make clean; make test || vimdiff testdir/vim.{ok,fail}
109 .. "'[^']*'" 109 .. "'[^']*'"
110 .. '\|' 110 .. '\|'
111 .. '\[[^]]\+\]' 111 .. '\[[^]]\+\]'
112 .. '\)' 112 .. '\)'
113 .. ':\%(\s\|$\)' 113 .. ':\%(\s\|$\)'
114
115 # NOT_A_DICT_KEY {{{3
116
117 const NOT_A_DICT_KEY: string = ':\@!'
118 114
119 # END_OF_COMMAND {{{3 115 # END_OF_COMMAND {{{3
120 116
121 const END_OF_COMMAND: string = $'\s*\%($\|||\@!\|{INLINE_COMMENT}\)' 117 const END_OF_COMMAND: string = $'\s*\%($\|||\@!\|{INLINE_COMMENT}\)'
122 118
195 folddoc\%[losed]\> 191 folddoc\%[losed]\>
196 foldd\%[oopen]\> 192 foldd\%[oopen]\>
197 ldo\=\>!\= 193 ldo\=\>!\=
198 tabdo\=\> 194 tabdo\=\>
199 windo\> 195 windo\>
200 au\%[tocmd]\>.* 196 au\%[tocmd]\>!\=.*
201 com\%[mand]\>.* 197 com\%[mand]\>!\=.*
202 g\%[lobal]!\={PATTERN_DELIMITER}.* 198 g\%[lobal]!\={PATTERN_DELIMITER}.*
203 v\%[global]!\={PATTERN_DELIMITER}.* 199 v\%[global]!\={PATTERN_DELIMITER}.*
204 END 200 END
205 201
206 const HIGHER_ORDER_COMMAND: string = $'\%(^\|{BAR_SEPARATION}\)\s*\<\%({patterns->join('\|')}\){NOT_A_DICT_KEY}' 202 const HIGHER_ORDER_COMMAND: string = $'\%(^\|{BAR_SEPARATION}\)\s*\<\%({patterns->join('\|')}\)\%(\s\|$\)\@='
207 203
208 # START_MIDDLE_END {{{3 204 # START_MIDDLE_END {{{3
209 205
210 # Let's derive this constant from `BLOCKS`: 206 # Let's derive this constant from `BLOCKS`:
211 # 207 #
252 START_MIDDLE_END = START_MIDDLE_END 248 START_MIDDLE_END = START_MIDDLE_END
253 ->map((_, kwds: list<string>) => 249 ->map((_, kwds: list<string>) =>
254 kwds->map((_, kwd: string) => kwd == '' 250 kwds->map((_, kwd: string) => kwd == ''
255 ? '' 251 ? ''
256 : $'\%(^\|{BAR_SEPARATION}\|\<sil\%[ent]\|{HIGHER_ORDER_COMMAND}\)\s*' 252 : $'\%(^\|{BAR_SEPARATION}\|\<sil\%[ent]\|{HIGHER_ORDER_COMMAND}\)\s*'
257 .. $'\<\%({kwd}\)\>\%(\s*{OPERATOR}\)\@!')) 253 .. $'\<\%({kwd}\)\>\%(\s\|$\|!\)\@=\%(\s*{OPERATOR}\)\@!'))
258 254
259 lockvar! START_MIDDLE_END 255 lockvar! START_MIDDLE_END
260 256
261 # ENDS_BLOCK {{{3 257 # ENDS_BLOCK {{{3
262 258
277 # `catch` and `elseif` need to be handled as special cases 273 # `catch` and `elseif` need to be handled as special cases
278 ->filter((_, pat: string): bool => pat->Unshorten() !~ '^\%(catch\|elseif\)\>') 274 ->filter((_, pat: string): bool => pat->Unshorten() !~ '^\%(catch\|elseif\)\>')
279 275
280 const ENDS_BLOCK_OR_CLAUSE: string = '^\s*\%(' .. patterns->join('\|') .. $'\){END_OF_COMMAND}' 276 const ENDS_BLOCK_OR_CLAUSE: string = '^\s*\%(' .. patterns->join('\|') .. $'\){END_OF_COMMAND}'
281 .. $'\|^\s*cat\%[ch]\%(\s\+\({PATTERN_DELIMITER}\).*\1\)\={END_OF_COMMAND}' 277 .. $'\|^\s*cat\%[ch]\%(\s\+\({PATTERN_DELIMITER}\).*\1\)\={END_OF_COMMAND}'
282 .. $'\|^\s*elseif\=\>\%({OPERATOR}\)\@!' 278 .. $'\|^\s*elseif\=\>\%(\s\|$\)\@=\%(\s*{OPERATOR}\)\@!'
283 279
284 # STARTS_NAMED_BLOCK {{{3 280 # STARTS_NAMED_BLOCK {{{3
285 281
286 patterns = [] 282 patterns = []
287 { 283 {
294 endif 290 endif
295 endfor 291 endfor
296 endfor 292 endfor
297 } 293 }
298 294
299 const STARTS_NAMED_BLOCK: string = $'^\s*\%(sil\%[ent]\s\+\)\=\%({patterns->join('\|')}\)\>{NOT_A_DICT_KEY}' 295 const STARTS_NAMED_BLOCK: string = $'^\s*\%(sil\%[ent]\s\+\)\=\%({patterns->join('\|')}\)\>\%(\s\|$\|!\)\@='
300 296
301 # STARTS_CURLY_BLOCK {{{3 297 # STARTS_CURLY_BLOCK {{{3
302 298
303 # TODO: `{` alone on a line is not necessarily the start of a block. 299 # TODO: `{` alone on a line is not necessarily the start of a block.
304 # It could be a dictionary if the previous line ends with a binary/ternary 300 # It could be a dictionary if the previous line ends with a binary/ternary
310 .. '\|' .. $'^\%(\s*\|.*{BAR_SEPARATION}\s*\)\%(com\%[mand]\|au\%[tocmd]\).*\zs\s{{' 306 .. '\|' .. $'^\%(\s*\|.*{BAR_SEPARATION}\s*\)\%(com\%[mand]\|au\%[tocmd]\).*\zs\s{{'
311 .. '\)' .. END_OF_COMMAND 307 .. '\)' .. END_OF_COMMAND
312 308
313 # STARTS_FUNCTION {{{3 309 # STARTS_FUNCTION {{{3
314 310
315 const STARTS_FUNCTION: string = $'^\s*\%({MODIFIERS.def}\)\=def\>{NOT_A_DICT_KEY}' 311 const STARTS_FUNCTION: string = $'^\s*\%({MODIFIERS.def}\)\=def\>!\=\s\@='
316 312
317 # ENDS_FUNCTION {{{3 313 # ENDS_FUNCTION {{{3
318 314
319 const ENDS_FUNCTION: string = $'^\s*enddef\>{END_OF_COMMAND}' 315 const ENDS_FUNCTION: string = $'^\s*enddef\>{END_OF_COMMAND}'
320 316