Skip to content

Commit 3c07eb0

Browse files
dkearnschrisbra
authored andcommitted
runtime(vim): Update syntax, improve user-command matching
- Match -addr and -keepscript attributes and generate -addr values. - Match attribute errors where = is specified. - Highlight attributes with Special like other Ex command options. - Don't highlight user-specified completion function args. - Match :delcommand -buffer attribute. closes: #15586 Signed-off-by: Doug Kearns <dougkearns@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
1 parent 84e3175 commit 3c07eb0

12 files changed

Lines changed: 307 additions & 81 deletions

runtime/syntax/generator/gen_syntax_vim.vim

Lines changed: 48 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
" Vim syntax file generator
22
" Language: Vim script
33
" Maintainer: Hirohito Higashi (h_east)
4-
" URL: https://github.com/vim-jp/syntax-vim-ex
5-
" Last Change: 2024 Aug 23
6-
" Version: 2.1.1
4+
" Last Change: 2024 Aug 30
75

86
let s:keepcpo= &cpo
97
set cpo&vim
@@ -288,6 +286,7 @@ function! s:get_vim_command_type(cmd_name)
288286
call
289287
catch
290288
def
289+
delcommand
291290
doautoall
292291
doautocmd
293292
echo
@@ -551,6 +550,44 @@ function! s:parse_vim_complete_name(li)
551550
endtry
552551
endfunc
553552

553+
" ------------------------------------------------------------------------------
554+
function! s:parse_vim_addr_name(li)
555+
try
556+
let file_name = $VIM_SRCDIR . '/usercmd.c'
557+
let item = {}
558+
559+
new
560+
exec 'read ' . file_name
561+
norm! gg
562+
exec '/^static addrtype_T addr_type_complete_tab\[] =$/+1;/^};$/-1yank'
563+
%delete _
564+
565+
put
566+
g!/^\s*ADDRTYPE_ENTRY(/d
567+
568+
for line in getline(1, line('$'))
569+
let list = matchlist(line, '^\s*ADDRTYPE_ENTRY(ADDR_\w\+,\s*"\(\w\+\)",\s*"\(.*\)"')
570+
let item.name = list[1]
571+
call add(a:li, copy(item))
572+
let item.name = list[2]
573+
call add(a:li, copy(item))
574+
endfor
575+
576+
" '?' is not in 'iskeyword' and cannot be used as keyword, so remove it.
577+
" (Separately specified as 'syn match' in vim.vim.base).
578+
call filter(a:li, {idx, val -> val.name !=# '?'})
579+
580+
quit!
581+
582+
if empty(a:li)
583+
throw 'addr_name is empty'
584+
endif
585+
catch /.*/
586+
call s:err_gen('')
587+
throw 'exit'
588+
endtry
589+
endfunc
590+
554591
" ------------------------------------------------------------------------------
555592
function! s:append_syn_any(lnum, str_info, li)
556593
let ret_lnum = a:lnum
@@ -658,7 +695,12 @@ function! s:update_syntax_vim_file(vim_info)
658695

659696
" vimUserAttrbCmplt
660697
let li = a:vim_info.compl_name
661-
let lnum = s:search_and_check('vimUserAttrbCmplt', base_fname, str_info)
698+
let lnum = s:search_and_check('vimUserCmdAttrCmplt', base_fname, str_info)
699+
let lnum = s:append_syn_any(lnum, str_info, li)
700+
701+
" vimUserAttrbAddr
702+
let li = a:vim_info.addr_name
703+
let lnum = s:search_and_check('vimUserCmdAttrAddr', base_fname, str_info)
662704
let lnum = s:append_syn_any(lnum, str_info, li)
663705

664706
" vimCommand - abbrev
@@ -731,6 +773,7 @@ try
731773
let s:vim_info.func = []
732774
let s:vim_info.hlgroup = []
733775
let s:vim_info.compl_name = []
776+
let s:vim_info.addr_name = []
734777

735778
set lazyredraw
736779
silent call s:parse_vim_option(s:vim_info.opt, s:vim_info.missing_opt,
@@ -740,6 +783,7 @@ try
740783
silent call s:parse_vim_function(s:vim_info.func)
741784
silent call s:parse_vim_hlgroup(s:vim_info.hlgroup)
742785
silent call s:parse_vim_complete_name(s:vim_info.compl_name)
786+
silent call s:parse_vim_addr_name(s:vim_info.addr_name)
743787

744788
call s:update_syntax_vim_file(s:vim_info)
745789
set nolazyredraw

runtime/syntax/generator/vim.vim.base

Lines changed: 42 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
" Language: Vim script
33
" Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com>
44
" Doug Kearns <dougkearns@gmail.com>
5-
" URL: https://github.com/vim-jp/syntax-vim-ex
65
" Last Change: 2024 Aug 30
76
" Former Maintainer: Charles E. Campbell
87

@@ -185,10 +184,11 @@ syn match vimNumber '\%(^\|\A\)\zs#\x\{6}' skipwhite nextgroup=vimGlobal,vimSub
185184
syn case match
186185

187186
" All vimCommands are contained by vimIsCommand. {{{2
188-
syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCall,vimCatch,vimConst,vimDef,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimLoadkeymap,vimMap,vimMark,vimMatch,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate,@vim9CmdList
187+
syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCall,vimCatch,vimConst,vimDef,vimDelcommand,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimLoadkeymap,vimMap,vimMark,vimMatch,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate,@vim9CmdList
189188
syn cluster vim9CmdList contains=vim9Const,vim9Final,vim9For,vim9Var
190189
syn match vimCmdSep "[:|]\+" skipwhite nextgroup=@vimCmdList,vimSubst1
191190
syn match vimIsCommand "\<\%(\h\w*\|[23]mat\%[ch]\)\>" contains=vimCommand
191+
syn match vimBang contained "!"
192192
syn match vimVar contained "\<\h[a-zA-Z0-9#_]*\>"
193193
syn match vimVar "\<[bwglstav]:\h[a-zA-Z0-9#_]*\>"
194194
syn match vimVar "\s\zs&\%([lg]:\)\=\a\+\>"
@@ -362,32 +362,44 @@ syn match vimSpecFileMod "\(:[phtre]\)\+" contained
362362
" User-Specified Commands: {{{2
363363
" =======================
364364
syn cluster vimUserCmdList contains=@vimCmdList,vimCmplxRepeat,@vimComment,vimCtrlChar,vimEscapeBrace,vimFunc,vimNotation,vimNumber,vimOper,vimRegister,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange
365-
syn keyword vimUserCommand contained com[mand]
366-
syn match vimUserCmdName contained "\<\u\w*\>" nextgroup=vimUserCmdBlock skipwhite
367-
syn match vimUserCmd "\<com\%[mand]!\=\>.*$" contains=vimUserAttrb,vimUserAttrbError,vimUserCommand,@vimUserCmdList,vimComFilter,vimCmdBlock,vimUserCmdName
368-
syn match vimUserAttrbError contained "-\a\+\ze\s"
369-
syn match vimUserAttrb contained "-nargs=[01*?+]" contains=vimUserAttrbKey,vimOper
370-
syn match vimUserAttrb contained "-complete=" contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError
371-
syn match vimUserAttrb contained "-range\(=%\|=\d\+\)\=" contains=vimNumber,vimOper,vimUserAttrbKey
372-
syn match vimUserAttrb contained "-count\(=\d\+\)\=" contains=vimNumber,vimOper,vimUserAttrbKey
373-
syn match vimUserAttrb contained "-bang\>" contains=vimOper,vimUserAttrbKey
374-
syn match vimUserAttrb contained "-bar\>" contains=vimOper,vimUserAttrbKey
375-
syn match vimUserAttrb contained "-buffer\>" contains=vimOper,vimUserAttrbKey
376-
syn match vimUserAttrb contained "-register\>" contains=vimOper,vimUserAttrbKey
365+
syn keyword vimUserCmdKey contained com[mand]
366+
syn match vimUserCmdName contained "\<\u[[:alnum:]]*\>" skipwhite nextgroup=vimUserCmdBlock
367+
syn match vimUserCmd "\<com\%[mand]\>!\=.*$" contains=vimUserCmdKey,vimBang,vimUserCmdAttr,vimUserCmdAttrError,vimUserCmdName,@vimUserCmdList,vimComFilter
368+
syn match vimUserCmdAttrError contained "-\a\+\ze\%(\s\|=\)"
369+
syn match vimUserCmdAttr contained "-addr=" contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrAddr
370+
syn match vimUserCmdAttr contained "-bang\>" contains=vimUserCmdAttrKey
371+
syn match vimUserCmdAttr contained "-bar\>" contains=vimUserCmdAttrKey
372+
syn match vimUserCmdAttr contained "-buffer\>" contains=vimUserCmdAttrKey
373+
syn match vimUserCmdAttr contained "-complete=" contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrCmplt,vimUserCmdError
374+
syn match vimUserCmdAttr contained "-count\>" contains=vimUserCmdAttrKey
375+
syn match vimUserCmdAttr contained "-count=" contains=vimUserCmdAttrKey nextgroup=vimNumber
376+
syn match vimUserCmdAttr contained "-keepscript\>" contains=vimUserCmdAttrKey
377+
syn match vimUserCmdAttr contained "-nargs=" contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrNargs
378+
syn match vimUserCmdAttr contained "-range\>" contains=vimUserCmdAttrKey
379+
syn match vimUserCmdAttr contained "-range=" contains=vimUserCmdAttrKey nextgroup=vimNumber,vimUserCmdAttrRange
380+
syn match vimUserCmdAttr contained "-register\>" contains=vimUserCmdAttrKey
381+
382+
syn match vimUserCmdAttrNargs contained "[01*?+]"
383+
syn match vimUserCmdAttrRange contained "%"
384+
377385
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_nousercmderror")
378386
syn match vimUserCmdError contained "\S\+\>"
379387
endif
380-
syn case ignore
381-
syn keyword vimUserAttrbKey contained bar ban[g] cou[nt] ra[nge] com[plete] n[args] re[gister]
382-
" GEN_SYN_VIM: vimUserAttrbCmplt, START_STR='syn keyword vimUserAttrbCmplt contained', END_STR=''
383-
syn keyword vimUserAttrbCmplt contained custom customlist nextgroup=vimUserAttrbCmpltFunc,vimUserCmdError
384-
syn match vimUserAttrbCmpltFunc contained ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%([.#]\h\w*\)\+\|\h\w*\)"hs=s+1 nextgroup=vimUserCmdError
385388

389+
syn case ignore
390+
syn keyword vimUserCmdAttrKey contained a[ddr] ban[g] bar bu[ffer] com[plete] cou[nt] k[eepscript] n[args] ra[nge] re[gister]
391+
" GEN_SYN_VIM: vimUserCmdAttrCmplt, START_STR='syn keyword vimUserCmdAttrCmplt contained', END_STR=''
392+
syn keyword vimUserCmdAttrCmplt contained custom customlist nextgroup=vimUserCmdAttrCmpltFunc,vimUserCmdError
393+
syn match vimUserCmdAttrCmpltFunc contained ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%([.#]\h\w*\)\+\|\h\w*\)"hs=s+1 nextgroup=vimUserCmdError
394+
" GEN_SYN_VIM: vimUserCmdAttrAddr, START_STR='syn keyword vimUserCmdAttrAddr contained', END_STR=''
395+
syn match vimUserCmdAttrAddr contained "?"
386396
syn case match
387-
syn match vimUserAttrbCmplt contained "custom,\u\w*"
388397

389398
syn region vimUserCmdBlock contained matchgroup=vimSep start="{" end="}" contains=@vimDefBodyList
390399

400+
syn match vimDelcommand "\<delc\%[ommand]\>" skipwhite nextgroup=vimDelcommandAttr
401+
syn match vimDelcommandAttr contained "-buffer\>"
402+
391403
" Lower Priority Comments: after some vim commands... {{{2
392404
" =======================
393405
if get(g:, "vimsyn_comment_strings", 1)
@@ -1162,6 +1174,8 @@ if !exists("skip_vim_syntax_inits")
11621174
hi def link vimDefComment vim9Comment
11631175
hi def link vimDefKey vimCommand
11641176
hi def link vimDefParam vimVar
1177+
hi def link vimDelcommand vimCommand
1178+
hi def link vimDelcommandAttr vimUserCmdAttr
11651179
hi def link vimEcho vimCommand
11661180
hi def link vimEchohlNone vimGroup
11671181
hi def link vimEchohl vimCommand
@@ -1319,13 +1333,15 @@ if !exists("skip_vim_syntax_inits")
13191333
hi def link vimUnlet vimCommand
13201334
hi def link vimUnletBang vimBang
13211335
hi def link vimUnmap vimMap
1322-
hi def link vimUserAttrbCmpltFunc Special
1323-
hi def link vimUserAttrbCmplt vimSpecial
1324-
hi def link vimUserAttrbKey vimOption
1325-
hi def link vimUserAttrb vimSpecial
1326-
hi def link vimUserAttrbError Error
1336+
hi def link vimUserCmdAttrAddr vimSpecial
1337+
hi def link vimUserCmdAttrCmplt vimSpecial
1338+
hi def link vimUserCmdAttrNargs vimSpecial
1339+
hi def link vimUserCmdAttrRange vimSpecial
1340+
hi def link vimUserCmdAttrKey vimUserCmdAttr
1341+
hi def link vimUserCmdAttr Special
1342+
hi def link vimUserCmdAttrError Error
13271343
hi def link vimUserCmdError Error
1328-
hi def link vimUserCommand vimCommand
1344+
hi def link vimUserCmdKey vimCommand
13291345
hi def link vimUserFunc Normal
13301346
hi def link vimVar Identifier
13311347
hi def link vimWarn WarningMsg

runtime/syntax/testdir/dumps/vim9_comment_01.dump

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
@2|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46
55
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
66
> @74
7-
|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|-+0#af5f00255&|c+0#e000e06&|o|u|n|t| +0#0000000&|F|o@1|C|o|m@1|a|n|d| |{+0#e000e06&| +0#0000000&@47
7+
|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|-+0#e000e06&|c|o|u|n|t| +0#0000000&|F|o@1|C|o|m@1|a|n|d| |{+0#e000e06&| +0#0000000&@47
88
| +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51
99
@2|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46
1010
|}+0#e000e06&| +0#0000000&@73

runtime/syntax/testdir/dumps/vim_comment_00.dump

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
@2|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46
1515
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
1616
@75
17-
|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|-+0#af5f00255&|n+0#e000e06&|a|r|g|s|=+0#af5f00255&|1+0#00e0003&| +0#0000000&|F|o@1|C|o|m@1|a|n|d| |{+0#e000e06&| +0#0000000&@45
17+
|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|-+0#e000e06&|n|a|r|g|s|=|1+0#00e0003&| +0#0000000&|F|o@1|C|o|m@1|a|n|d| |{+0#e000e06&| +0#0000000&@45
1818
| +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51
1919
@2|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46
2020
@57|1|,|1| @10|T|o|p|

runtime/syntax/testdir/dumps/vim_comment_01.dump

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
| +0&#ffffff0@1|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46
22
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
33
@75
4-
|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|-+0#af5f00255&|n+0#e000e06&|a|r|g|s|=+0#af5f00255&|1+0#00e0003&| +0#0000000&|F|o@1|C|o|m@1|a|n|d| |{+0#e000e06&| +0#0000000&@45
4+
|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|-+0#e000e06&|n|a|r|g|s|=|1+0#00e0003&| +0#0000000&|F|o@1|C|o|m@1|a|n|d| |{+0#e000e06&| +0#0000000&@45
55
| +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51
66
@2>"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46
77
|}+0#e000e06&| +0#0000000&@73
Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1-
>"+0#0000e05#ffffff0| |V|i|m| |:|c|o|m@1|a|n|d| |c|o|m@1|a|n|d| +0#0000000&@52
1+
>"+0#0000e05#ffffff0| |V|i|m| |:|c|o|m@1|a|n|d|,| |:|d|e|l|c|o|m@1|a|n|d| |a|n|d| |:|c|o|m|c|l|e|a|r| |c|o|m@1|a|n|d|s| +0#0000000&@24
22
@75
3-
|"+0#0000e05&| |I|s@1|u|e| |#|1|4|1|3|5| +0#0000000&@60
43
@75
5-
|c+0#af5f00255&|o|m| +0#0000000&|F|o@1| |c+0#af5f00255&|a|l@1| +0#0000000&|s+0#00e0e07&|y|s|t|e|m|(+0#0000000&|'+0#e000002&|l|s|'|)+0#0000000&| @49
6-
|~+0#4040ff13&| @73
7-
|~| @73
8-
|~| @73
9-
|~| @73
10-
|~| @73
11-
|~| @73
12-
|~| @73
13-
|~| @73
14-
|~| @73
15-
|~| @73
16-
|~| @73
17-
|~| @73
18-
|~| @73
19-
|~| @73
20-
| +0#0000000&@56|1|,|1| @10|A|l@1|
4+
|"+0#0000e05&| |l|i|s|t| +0#0000000&@68
5+
@75
6+
|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&@67
7+
|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|F| @65
8+
@75
9+
|"+0#0000e05&| |d|e|f|i|n|e| +0#0000000&@66
10+
@75
11+
|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&@1|F|o@1| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@51
12+
|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|F|o@1| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@51
13+
|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|F|o@1| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|B|a|r|"| +0#0000000&@38
14+
@75
15+
|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|F|o@1| |{+0#e000e06&| +0#0000000&@60
16+
@2|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@62
17+
@2|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|B|a|r|"| +0#0000000&@62
18+
@2|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|B|a|z|"| +0#0000000&@62
19+
|}+0#e000e06&| +0#0000000&@73
20+
@57|1|,|1| @10|T|o|p|
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
| +0&#ffffff0@74
2+
|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|F|o@1| |{+0#e000e06&| +0#0000000&@60
3+
@2|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@62
4+
@2|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|B|a|r|"| +0#0000000&@62
5+
@2|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|B|a|z|"| +0#0000000&@62
6+
>}+0#e000e06&| +0#0000000&@73
7+
@75
8+
|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|-+0#e000e06&|a|d@1|r|=|a+0#00e0003&|r|g|u|m|e|n|t|s| +0#0000000&|-+0#e000e06&|b|a|n|g| +0#0000000&|-+0#e000e06&|b|a|r| +0#0000000&|-+0#e000e06&|b|u|f@1|e|r| +0#0000000&|-+0#e000e06&|c|o|m|p|l|e|t|e|=|a+0#00e0003&|r|g|l|i|s|t| +0#0000000&|-+0#e000e06&|c|o|u|n|t|=|1+0#e000002&| +0#0000000&|-+0#e000e06&|k|e@1
9+
|p|s|c|r|i|p|t| +0#0000000&|-+0#e000e06&|n|a|r|g|s|=|*+0#00e0003&| +0#0000000&|-+0#e000e06&|r|a|n|g|e|=|%+0#00e0003&| +0#0000000&|-+0#e000e06&|r|e|g|i|s|t|e|r| +0#0000000&|F|o@1| @35
10+
@6|\+0#e000e06&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@56
11+
@75
12+
|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|-+0#e000e06&|c|o|m|p|l|e|t|e|=|c+0#00e0003&|u|s|t|o|m|,+0#0000000&|C|o|m|p|l|e|t|e|r|1| |F|o@1| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@23
13+
|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|-+0#e000e06&|c|o|m|p|l|e|t|e|=|c+0#00e0003&|u|s|t|o|m|l|i|s|t|,+0#0000000&|C|o|m|p|l|e|t|e|r|2| |F|o@1| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@19
14+
@75
15+
|f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@60
16+
@2|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|F|o@1| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1| |(|d|e|f|i|n|e|d| |i|n| |:|f|u|n|c|t|i|o|n|)|"| +0#0000000&@26
17+
|e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63
18+
@75
19+
|d+0#af5f00255&|e|f| +0#0000000&|F|o@1|2|(+0#e000e06&|)| +0#0000000&@64
20+
@57|1|9|,|1| @9|2|3|%|
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
|d+0#af5f00255#ffffff0|e|f| +0#0000000&|F|o@1|2|(+0#e000e06&|)| +0#0000000&@64
2+
@2|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|F|o@1| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1| |(|d|e|f|i|n|e|d| |i|n| |:|d|e|f|)|"| +0#0000000&@31
3+
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
4+
@75
5+
|"+0#0000e05&| |m|u|l|t|i|l|i|n|e| |d|e|f|i|n|e| +0#0000000&@56
6+
> @74
7+
|"+0#0000e05&| |c|o|m@1|a|n|d|!| +0#0000000&@64
8+
|"+0#0000e05&| @6|\| |-|a|d@1|r|=|l|i|n|e|s| +0#0000000&@53
9+
|"+0#0000e05&| @6|\| |-|b|a|n|g| +0#0000000&@59
10+
|"+0#0000e05&| @6|\| |-|b|a|r| +0#0000000&@60
11+
|"+0#0000e05&| @6|\| |-|b|u|f@1|e|r| +0#0000000&@57
12+
|"+0#0000e05&| @6|\| |-|c|o|m|p|l|e|t|e|=|b|u|f@1|e|r| +0#0000000&@48
13+
|"+0#0000e05&| @6|\| |-|c|o|u|n|t| +0#0000000&@58
14+
|"+0#0000e05&| @6|\| |-|n|a|r|g|s|=|*| +0#0000000&@56
15+
|"+0#0000e05&| @6|\| |-|r|a|n|g|e| +0#0000000&@58
16+
|"+0#0000e05&| @6|\| |-|r|e|g|i|s|t|e|r| +0#0000000&@55
17+
|"+0#0000e05&| @6|\| |-|k|e@1|p|s|c|r|i|p|t| +0#0000000&@53
18+
|"+0#0000e05&| @6|\| |F|o@1| | +0#0000000&@60
19+
|"+0#0000e05&| @6|\| |e|c|h|o| |"+0#e000002&|F|O@1|"| +0#0000000&@54
20+
@57|3|6|,|0|-|1| @7|5|4|%|
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
|"+0#0000e05#ffffff0| @6|\| |e|c|h|o| |"+0#e000002&|F|O@1|"| +0#0000000&@54
2+
@75
3+
|"+0#0000e05&| |e|r@1|o|r|s| +0#0000000&@66
4+
@75
5+
|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|-+0#ffffff16#ff404010|b|a|d|a|t@1|r|=+0#af5f00255#ffffff0|a+0#0000000&|r|g|u|m|e|n|t|s| |-+0#e000e06&|b|a|n|g| +0#0000000&|-+0#ffffff16#ff404010|b|a|d|a|t@1|r| +0#0000000#ffffff0|-+0#e000e06&|n|a|r|g|s|=|*+0#00e0003&| +0#0000000&|F|o@1| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@8
6+
> @74
7+
|"+0#0000e05&| |d|e|l|e|t|e| +0#0000000&@66
8+
@75
9+
|d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&|F|o@1| @60
10+
|d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&|-+0#e000e06&|b|u|f@1|e|r| +0#0000000&|F|o@1| @52
11+
@75
12+
|d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&|F|o@1| ||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@47
13+
|d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&|-+0#e000e06&|b|u|f@1|e|r| +0#0000000&|F|o@1| ||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@39
14+
@75
15+
|d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&|F|o@1| |"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@50
16+
|d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&|-+0#e000e06&|b|u|f@1|e|r| +0#0000000&|F|o@1| |"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@42
17+
@75
18+
|c+0#af5f00255&|o|m|c|l|e|a|r| +0#0000000&@66
19+
|c+0#af5f00255&|o|m|c|l|e|a|r| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56
20+
@57|5|4|,|0|-|1| @7|8|7|%|
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
|c+0#af5f00255#ffffff0|o|m|c|l|e|a|r| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56
2+
|c+0#af5f00255&|o|m|c|l|e|a|r| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@53
3+
@75
4+
@75
5+
|"+0#0000e05&| |I|s@1|u|e| |#|1|4|1|3|5| +0#0000000&@60
6+
> @74
7+
|c+0#af5f00255&|o|m| +0#0000000&|F|o@1| |c+0#af5f00255&|a|l@1| +0#0000000&|s+0#00e0e07&|y|s|t|e|m|(+0#0000000&|'+0#e000002&|l|s|'|)+0#0000000&| @49
8+
@75
9+
|~+0#4040ff13&| @73
10+
|~| @73
11+
|~| @73
12+
|~| @73
13+
|~| @73
14+
|~| @73
15+
|~| @73
16+
|~| @73
17+
|~| @73
18+
|~| @73
19+
|~| @73
20+
| +0#0000000&@56|7|2|,|0|-|1| @7|B|o|t|

0 commit comments

Comments
 (0)