Mercurial > vim
view runtime/indent/testdir/vim.ok @ 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 | cc751d944b7e |
children | 5b46a975e48a |
line wrap: on
line source
" vim: set ft=vim sw=4 : " START_INDENT func Some() let x = 1 endfunc let cmd = \ 'some ' \ 'string' if 1 let x = [ \ ] endif for x in [ {key: 'value'}, ] eval 0 endfor let t = [ \ { \ 'k': 'val', \ }, \ ] def Func() var d = dd ->extend({ }) eval 0 enddef " END_INDENT " START_INDENT " INDENT_EXE let g:vim_indent_cont = 6 let cmd = \ 'some ' \ 'string' " END_INDENT " START_INDENT " INDENT_EXE let g:vim_indent_cont = 5 let list = [ \ 'one', \ 'two'] " END_INDENT " START_INDENT " INDENT_EXE unlet g:vim_indent_cont let list = [ 'one', 'two', ] echo " END_INDENT " START_INDENT " INDENT_AT this-line func Some() let f = x " this-line endfunc " END_INDENT " START_INDENT " INDENT_NEXT next-line func Some() " next-line let f = x endfunc " END_INDENT " START_INDENT " INDENT_PREV prev-line func Some() let f = x " prev-line endfunc " END_INDENT " START_INDENT let a =<< END nothing END " END_INDENT " START_INDENT let a =<< trim END nothing END " END_INDENT " START_INDENT " INDENT_AT this-line let a=<< trim END blah blah blah this-line END " END_INDENT " START_INDENT if v:true echo 0 end " END_INDENT " START_INDENT var result = Func( arg1, arg2 ) " END_INDENT " START_INDENT var result = Func(arg1, arg2) " END_INDENT " START_INDENT filter(list, (k, v) => v > 0) " END_INDENT " START_INDENT filter(list, (k, v) => { const x = get(list, k, 0) return x > 0 }) " END_INDENT " START_INDENT if x > 0 filter(list, (k, v) => { const x = get(list, k, 1) return x > 0 }) endif " END_INDENT " START_INDENT { var temp = 'temp' } " END_INDENT " START_INDENT var text = lead .. middle .. end " END_INDENT " START_INDENT var text = lead .. middle .. end " END_INDENT " START_INDENT var total = start + end - correction " END_INDENT " START_INDENT var result = start :+ print " END_INDENT " START_INDENT var result = positive ? PosFunc(arg) : NegFunc(arg) " END_INDENT " START_INDENT var result = GetBuilder() ->BuilderSetWidth(333) ->BuilderSetHeight(777) ->BuilderBuild() " END_INDENT " START_INDENT var result = MyDict .member " END_INDENT " START_INDENT autocmd BufNewFile *.match if condition | echo 'match' | endif " END_INDENT " START_INDENT set cpo+=C var lines =<< trim END | this works END set cpo-=C " END_INDENT " START_INDENT syn region Text \ start='foo' #\ comment \ end='bar' " END_INDENT " START_INDENT au CursorHold * echom 'BEFORE bar' #\ some comment | echom 'AFTER bar' " END_INDENT " START_INDENT def MyFunc(text: string, separator = '-' ): string enddef " END_INDENT " START_INDENT def MyFunc( text: string, separator = '-' ): string enddef " END_INDENT " START_INDENT [var1, var2] = Func() " END_INDENT " START_INDENT const list = ['one', 'two'] " END_INDENT " START_INDENT const list = [ 'one', 'two', ] " END_INDENT " START_INDENT const dict = {one: 1, two: 2 } " END_INDENT " START_INDENT const dict = { one: 1, two: 2 } " END_INDENT " START_INDENT if true const dict = { one: 1, two: 2 } endif " END_INDENT " START_INDENT def Func() return { one: 1 } enddef " END_INDENT " START_INDENT echo { a: 0, # b # c } " END_INDENT " START_INDENT echo search( # comment '1' .. '2' ) " END_INDENT " START_INDENT if true var v = ( # trailing "(" starts line continuation 3 + 4 # nothing special ) # end of expression indicates continued line var x: number # needs to align with previous "var" endif " END_INDENT " START_INDENT def Func() # {{{ # comment if true return endif enddef " END_INDENT " START_INDENT echo { key: 'value', } " END_INDENT " START_INDENT var id = time ->timer_start((_) => { n = 0 }) " END_INDENT " START_INDENT augroup Name autocmd! augroup END " END_INDENT " START_INDENT var n = # comment 1 + 2 var s = '' " END_INDENT " START_INDENT var keys = { J: 'j', "\<Home>": '1G', "\<End>": 'G', z: 'zz' } " END_INDENT " START_INDENT export def Func( n: number, s: string, ...l: list<bool> ) enddef " END_INDENT " START_INDENT var heredoc =<< trim ENDD var nested_heredoc =<< trim END END ENDD " END_INDENT " START_INDENT if true else " comment endif " END_INDENT " START_INDENT if true | echo 'one' | endif if true | echo 'two' | endif if true | echo 'three' | endif " END_INDENT " START_INDENT if true :'<-1 mark < else echo '' endif " END_INDENT " START_INDENT substitute/pat /rep / echo " END_INDENT " START_INDENT try echo 1 catch /pat / # comment echo 2 endtry " END_INDENT " START_INDENT def Func() Cmd % enddef " END_INDENT " START_INDENT if end == 'xxx' || end == 'yyy' echo endif " END_INDENT " START_INDENT if true popup_move(id, {col: 1, line: 2}) endif setwinvar(id, 'name', 3) " END_INDENT " START_INDENT var d = [ {a: 'x', b: 'y'}, FuncA(), FuncB(), ] " END_INDENT " START_INDENT var ll = [[ 1, 2, 3], [ 4, 5, 6], [ 7, 8, 9]] " END_INDENT " START_INDENT var ld = [{ a: 'xxx', b: 'yyy'}, { c: 'xxx', d: 'yyy'}, { e: 'xxx', f: 'yyy'}, { }] " END_INDENT " START_INDENT var d = { a: { b: { c: [{ d: 'e', f: 'g', h: 'i' }], j: 'k', }, }, } " END_INDENT " START_INDENT if true var end: any if true end = 0 elseif true echo endif endif " END_INDENT " START_INDENT if true var d = { end: 0} endif " END_INDENT " START_INDENT nunmap <buffer> ( nunmap <buffer> ) inoremap [ { inoremap ] } silent! xunmap i{ silent! xunmap a{ " END_INDENT " START_INDENT def Func( s: string, n = 1, m = 2 ) enddef " END_INDENT " START_INDENT var h =<< END text END def Func() echo enddef " END_INDENT " START_INDENT def Func() var h =<< END text END echo 'test' enddef " END_INDENT " START_INDENT def Foo() lcd - enddef def Bar() echo enddef " END_INDENT " START_INDENT if true n = Func(1, 2, 3) endif " END_INDENT " START_INDENT def Func(s: string, n: number): bool if true return false endif enddef " END_INDENT " START_INDENT def Func( n: number) # echo enddef " END_INDENT " START_INDENT " INDENT_AT this-line def Func( n: number) # echo # this-line enddef " END_INDENT " START_INDENT if true if true normal! == endif endif " END_INDENT " START_INDENT var d = { a: () => true, b: () => true && true && Foo(), c: () => Bar(), e: () => Baz(), } " END_INDENT " START_INDENT def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any)) return (Emit: func(any)) => { Cont((t: any) => { if Pred(t) Emit(t) endif }) } enddef " END_INDENT " START_INDENT " INDENT_EXE let g:vim_indent = {'more_in_bracket_block': v:true} def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any)) return (Emit: func(any)) => { Cont((t: any) => { if Pred(t) Emit(t) endif }) } enddef " END_INDENT " START_INDENT " INDENT_EXE unlet! g:vim_indent " END_INDENT " START_INDENT g:lightline = { 'active': { 'left': [ [ 'mode', 'paste' ], [ 'readonly', 'relativepath', 'modified' ] ], }, 'inactive': { 'left': [ [ 'readonly', 'relativepath', 'modified' ] ], } } " END_INDENT " START_INDENT if getline(1, 10) ->map((_, v: string): number => strcharlen(v)) ->max() > 1'000 &l:breakindent = false &l:linebreak = false else &l:breakindent = true &l:linebreak = true endif " END_INDENT " START_INDENT var ext2cmd: dict<string> = { doc: $'antiword {fname}', docx: $'pandoc --from=docx --to=markdown {fname}', epub: $'pandoc --from=epub --to=markdown {fname}', odp: $'odt2txt {fname}', odt: $'odt2txt {fname}', pdf: $'pdftotext -nopgbrk -layout -q -eol unix {fname} -', rtf: 'unrtf --text', } " END_INDENT " START_INDENT const ptybuf: number = term_start(&shell, { hidden: true, exit_cb: (_, _) => { if true close else help endif } }) " END_INDENT " START_INDENT var d = { a: 0, # a ' quote {{{ #}}} b: 0, } " END_INDENT " START_INDENT echo printf('%s () %s', 1, 2 ) " END_INDENT " START_INDENT prop_add(1, col('.'), { length: 2, type: 'test' }) " END_INDENT " START_INDENT echo (() => " string starting with space")() echo " END_INDENT " START_INDENT var variables = deepcopy(g:) ->filter((k: string, _): bool => k =~ '\c\V' .. keyword->escape('\') && k !~ '\%(loaded\|did_plugin_\)') ->items() ->map((_, v): string => v[0] .. ' = ' .. string(v[1])) new " END_INDENT " START_INDENT var d = freq ->map((_, v) => v * ( 1 + 2 )) for item in d ->items() ->sort((a, b) => b[1] - a[1]) echo endfor " END_INDENT " START_INDENT make_job = job_start([&shell, &shellcmdflag, make_cmd], { callback: function(MakeProcessOutput, [qfid]), close_cb: function(MakeCloseCb, [qfid]), exit_cb: MakeCompleted, in_io: 'null' }) " END_INDENT " START_INDENT var matching_abbrev: list<dict<string>> = copy(ABBREV) ->filter((_, v: dict<string>): bool => stridx(v.lhs, word_to_complete) == 0) ->map((_, v: dict<string>) => ({ word: v.lhs, menu: AbbrevRhs(v.rhs)->stridx('expand_') >= 0 ? AbbrevRhs(v.rhs)->matchstr('.*,\s*''\zs.*\ze'')') : AbbrevRhs(v.rhs) })) " END_INDENT " START_INDENT def Func() if true vimgrep /^\C\s*\%(fu\%[nction]\|def\)\s\+/ file endif enddef " END_INDENT " START_INDENT setlocal iskeyword+=[ cword = expand('<cword>') " END_INDENT " START_INDENT silent if true echo endif " END_INDENT " START_INDENT def Func() sort :^.*[\/]: enddef " END_INDENT " START_INDENT def Func() d = { } hd =<< trim END [' ]' END enddef " END_INDENT " START_INDENT def Func() if true var hd =<< trim END if get(b:, 'current_syntax', '') endif END elseif true echo endif enddef " END_INDENT " START_INDENT # test for control-flow keyword followed by commented fold marker {{{ if true echo endif #}}} " END_INDENT " START_INDENT if winsz == 0|let winsz= ""|endif exe "noswapfile ".winsz."wincmd s" " END_INDENT " START_INDENT if true if true windo if true | echo | endif augroup Name autocmd WinLeave * if true | eval 1 + 2 | endif augroup END endif endif " END_INDENT " START_INDENT if true echo ' =<< trim END' ->len() endif " END_INDENT " START_INDENT function Func() if true if true if true | echo com | endif if true | echo com | endif endif else endif endfunction " END_INDENT " START_INDENT function Func() if v:true + echo - endif endfunction " END_INDENT " START_INDENT var matchpairs: string = &matchpairs var pairs: dict<list<string>> for [opening: string, closing: string] in matchpairs ->split(',') ->map((_, v: string): list<string> => split(v, ':')) pairs[opening] = [escape(opening, '[]'), escape(closing, '[]'), 'nW', 'w$'] pairs[closing] = [escape(opening, '[]'), escape(closing, '[]'), 'bnW', 'w0'] endfor " END_INDENT " START_INDENT { echo [] + [] + [{a: 1, b: 2}] } " END_INDENT " START_INDENT silent! argdel * edit file " END_INDENT " START_INDENT def Foo() Bar(1, []->filter((_, v) => { return true }), () => { echo }) enddef " END_INDENT " START_INDENT echo { k: () => { if true echo popup_setoptions(id, {title: 'title'}) endif } } " END_INDENT " START_INDENT if true elseif endif " END_INDENT " START_INDENT if ( true) && true echo endif " END_INDENT " START_INDENT abstract class Shape this.color = Color.Black this.thickness = 10 endclass " END_INDENT " START_INDENT class OtherThing this.size: number static totalSize: number static def ClearTotalSize(): number var prev = totalSize totalSize = 0 return prev enddef endclass " END_INDENT " START_INDENT interface HasSurface this.size: number def Surface(): number endinterface " END_INDENT " START_INDENT interface EnterExit def Enter(): void def Exit(): void endinterface " END_INDENT " START_INDENT enum Color White Red Green Blue Black endenum " END_INDENT