mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 18:55:14 -07:00
runtime: Add shada.vim syntax file
This commit is contained in:
parent
9037a180de
commit
ae0576a472
125
runtime/syntax/shada.vim
Normal file
125
runtime/syntax/shada.vim
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
syntax match ShaDaEntryHeader
|
||||||
|
\ '^\u.\{-} with timestamp \d\{4}-\d\d-\d\dT\d\d:\d\d:\d\d:$'
|
||||||
|
syntax match ShaDaEntryName '^\u.\{-}\ze with' contained
|
||||||
|
\ containedin=ShaDaEntryHeader
|
||||||
|
syntax match ShaDaEntryTimestamp 'timestamp \zs\d\{4}-\d\d-\d\dT\d\d:\d\d:\d\d'
|
||||||
|
\ contained containedin=ShaDaEntryHeader
|
||||||
|
syntax match ShaDaEntryTimestampNumber '\d\+' contained
|
||||||
|
\ containedin=ShaDaEntryTimestamp
|
||||||
|
|
||||||
|
syntax match ShaDaComment '^\s*#.*$'
|
||||||
|
|
||||||
|
syntax region ShaDaEntryMapLong start='^ % Key_* Description_* Value$'
|
||||||
|
\ end='^ %\|^\S'me=s-1 contains=ShaDaComment,ShaDaEntryMapLongEntryStart
|
||||||
|
syntax region ShaDaEntryMapShort start='^ % Key_* Value$'
|
||||||
|
\ end='^ %\|^\S'me=s-1 contains=ShaDaComment,ShaDaEntryMapShortEntryStart
|
||||||
|
syntax match ShaDaEntryMapHeader '^ % Key_* \(Description_* \)\?Value$'
|
||||||
|
\ contained containedin=ShaDaEntryMapLong,ShaDaEntryMapShort
|
||||||
|
syntax match ShaDaEntryMapLongEntryStart '^ + 'hs=e-2,he=e-1
|
||||||
|
\ nextgroup=ShaDaEntryMapLongKey
|
||||||
|
syntax match ShaDaEntryMapLongKey '\S\+ \+\ze\S'he=e-2 contained
|
||||||
|
\ nextgroup=ShaDaEntryMapLongDescription
|
||||||
|
syntax match ShaDaEntryMapLongDescription '.\{-} \ze\S'he=e-2 contained
|
||||||
|
\ nextgroup=@ShaDaEntryMsgpackValue
|
||||||
|
syntax match ShaDaEntryMapShortEntryStart '^ + 'hs=e-2,he=e-1 contained
|
||||||
|
\ nextgroup=ShaDaEntryMapShortKey
|
||||||
|
syntax match ShaDaEntryMapShortKey '\S\+ \+\ze\S'he=e-2 contained
|
||||||
|
\ nextgroup=@ShaDaEntryMsgpackValue
|
||||||
|
syntax match ShaDaEntryMapBinArrayStart '^ | - 'hs=e-4,he=e-1 contained
|
||||||
|
\ containedin=ShaDaEntryMapLong,ShaDaEntryMapShort
|
||||||
|
\ nextgroup=@ShaDaEntryMsgpackValue
|
||||||
|
|
||||||
|
syntax region ShaDaEntryArray start='^ @ Description_* Value$'
|
||||||
|
\ end='^\S'me=s-1 keepend
|
||||||
|
\ contains=ShaDaComment,ShaDaEntryArrayEntryStart,ShaDaEntryArrayHeader
|
||||||
|
syntax match ShaDaEntryArrayHeader '^ @ Description_* Value$' contained
|
||||||
|
syntax match ShaDaEntryArrayEntryStart '^ - 'hs=e-2,he=e-1
|
||||||
|
\ nextgroup=ShaDaEntryArrayDescription
|
||||||
|
syntax match ShaDaEntryArrayDescription '.\{-} \ze\S'he=e-2 contained
|
||||||
|
\ nextgroup=@ShaDaEntryMsgpackValue
|
||||||
|
|
||||||
|
syntax match ShaDaEntryRawMsgpack '^ = ' nextgroup=@ShaDaEntryMsgpackValue
|
||||||
|
|
||||||
|
syntax cluster ShaDaEntryMsgpackValue
|
||||||
|
\ add=ShaDaMsgpackKeyword,ShaDaMsgpackShaDaKeyword
|
||||||
|
\ add=ShaDaMsgpackInteger,ShaDaMsgpackCharacter,ShaDaMsgpackFloat
|
||||||
|
\ add=ShaDaMsgpackBinaryString,ShaDaMsgpackString,ShaDaMsgpackExt
|
||||||
|
\ add=ShaDaMsgpackArray,ShaDaMsgpackMap
|
||||||
|
\ add=ShaDaMsgpackMultilineArray
|
||||||
|
syntax keyword ShaDaMsgpackKeyword contained NIL TRUE FALSE
|
||||||
|
syntax keyword ShaDaMsgpackShaDaKeyword contained
|
||||||
|
\ CMD SEARCH EXPR INPUT DEBUG
|
||||||
|
\ CHARACTERWISE LINEWISE BLOCKWISE
|
||||||
|
syntax region ShaDaMsgpackBinaryString matchgroup=ShaDaMsgpackStringQuotes
|
||||||
|
\ start='"' skip='\\"' end='"' contained keepend
|
||||||
|
syntax match ShaDaMsgpackBinaryStringEscape '\\[\\0n"]'
|
||||||
|
\ contained containedin=ShaDaMsgpackBinaryString
|
||||||
|
syntax match ShaDaMsgpackString '=' contained nextgroup=ShaDaMsgpackBinaryString
|
||||||
|
syntax match ShaDaMsgpackExt '+(-\?\d\+)' contained
|
||||||
|
\ nextgroup=ShaDaMsgpackBinaryString
|
||||||
|
syntax match ShaDaMsgpackExtType '-\?\d\+' contained containedin=ShaDaMsgpackExt
|
||||||
|
syntax match ShaDaMsgpackCharacter /'.'/ contained
|
||||||
|
syntax match ShaDaMsgpackInteger '-\?\%(0x\x\{,16}\|\d\+\)' contained
|
||||||
|
syntax match ShaDaMsgpackFloat '-\?\d\+\.\d\+\%(e[+-]\?\d\+\)\?' contained
|
||||||
|
syntax region ShaDaMsgpackArray matchgroup=ShaDaMsgpackArrayBraces
|
||||||
|
\ start='\[' end='\]' contained
|
||||||
|
\ contains=@ShaDaEntryMsgpackValue,ShaDaMsgpackComma
|
||||||
|
syntax region ShaDaMsgpackMap matchgroup=ShaDaMsgpackMapBraces
|
||||||
|
\ start='{' end='}' contained
|
||||||
|
\ contains=@ShaDaEntryMsgpackValue,ShaDaMsgpackComma,ShaDaMsgpackColon
|
||||||
|
syntax match ShaDaMsgpackComma ',' contained
|
||||||
|
syntax match ShaDaMsgpackColon ':' contained
|
||||||
|
syntax match ShaDaMsgpackMultilineArray '@' contained
|
||||||
|
|
||||||
|
hi def link ShaDaComment Comment
|
||||||
|
hi def link ShaDaEntryNumber Number
|
||||||
|
hi def link ShaDaEntryTimestamp Operator
|
||||||
|
hi def link ShaDaEntryName Keyword
|
||||||
|
|
||||||
|
hi def link ShaDaEntryMapHeader PreProc
|
||||||
|
|
||||||
|
hi def link ShaDaEntryMapEntryStart Label
|
||||||
|
hi def link ShaDaEntryMapLongEntryStart ShaDaEntryMapEntryStart
|
||||||
|
hi def link ShaDaEntryMapShortEntryStart ShaDaEntryMapEntryStart
|
||||||
|
hi def link ShaDaEntryMapBinArrayStart ShaDaEntryMapEntryStart
|
||||||
|
hi def link ShaDaEntryArrayEntryStart ShaDaEntryMapEntryStart
|
||||||
|
|
||||||
|
hi def link ShaDaEntryMapKey String
|
||||||
|
hi def link ShaDaEntryMapLongKey ShaDaEntryMapKey
|
||||||
|
hi def link ShaDaEntryMapShortKey ShaDaEntryMapKey
|
||||||
|
|
||||||
|
hi def link ShaDaEntryMapDescription Comment
|
||||||
|
hi def link ShaDaEntryMapLongDescription ShaDaEntryMapDescription
|
||||||
|
hi def link ShaDaEntryMapShortDescription ShaDaEntryMapDescription
|
||||||
|
|
||||||
|
hi def link ShaDaEntryArrayHeader PreProc
|
||||||
|
|
||||||
|
hi def link ShaDaEntryArrayDescription ShaDaEntryMapDescription
|
||||||
|
|
||||||
|
hi def link ShaDaMsgpackKeyword Keyword
|
||||||
|
hi def link ShaDaMsgpackShaDaKeyword ShaDaMsgpackKeyword
|
||||||
|
hi def link ShaDaMsgpackCharacter Character
|
||||||
|
hi def link ShaDaMsgpackInteger Number
|
||||||
|
hi def link ShaDaMsgpackFloat Float
|
||||||
|
|
||||||
|
hi def link ShaDaMsgpackBinaryString String
|
||||||
|
hi def link ShaDaMsgpackBinaryStringEscape SpecialChar
|
||||||
|
hi def link ShaDaMsgpackExtType Typedef
|
||||||
|
|
||||||
|
hi def link ShaDaMsgpackStringQuotes Operator
|
||||||
|
hi def link ShaDaMsgpackString ShaDaMsgpackStringQuotes
|
||||||
|
hi def link ShaDaMsgpackExt ShaDaMsgpackStringQuotes
|
||||||
|
|
||||||
|
hi def link ShaDaMsgpackMapBraces Operator
|
||||||
|
hi def link ShaDaMsgpackArrayBraces ShaDaMsgpackMapBraces
|
||||||
|
|
||||||
|
hi def link ShaDaMsgpackComma Operator
|
||||||
|
hi def link ShaDaMsgpackColon ShaDaMsgpackComma
|
||||||
|
|
||||||
|
hi def link ShaDaMsgpackMultilineArray Operator
|
||||||
|
|
||||||
|
let b:current_syntax = "shada"
|
@ -2488,3 +2488,346 @@ describe('ftplugin/shada.vim', function()
|
|||||||
eq('x', curbuf('get_line', 0))
|
eq('x', curbuf('get_line', 0))
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
describe('syntax/shada.vim', function()
|
||||||
|
local epoch = os.date('%Y-%m-%dT%H:%M:%S', 0)
|
||||||
|
before_each(reset)
|
||||||
|
|
||||||
|
it('works', function()
|
||||||
|
nvim_command('syntax on')
|
||||||
|
nvim_command('setlocal syntax=shada')
|
||||||
|
curbuf('set_line_slice', 0, 0, true, true, {
|
||||||
|
'Header with timestamp ' .. epoch .. ':',
|
||||||
|
' % Key Value',
|
||||||
|
' + t "test"',
|
||||||
|
'Jump with timestamp ' .. epoch .. ':',
|
||||||
|
' % Key________ Description Value',
|
||||||
|
' + n name \'A\'',
|
||||||
|
' + f file name ["foo"]',
|
||||||
|
' + l line number 2',
|
||||||
|
' + c column -200',
|
||||||
|
'Register with timestamp ' .. epoch .. ':',
|
||||||
|
' % Key Description Value',
|
||||||
|
' + rc contents @',
|
||||||
|
' | - {"abcdefghijklmnopqrstuvwxyz": 1.0}',
|
||||||
|
' + rt type CHARACTERWISE',
|
||||||
|
' + rt type LINEWISE',
|
||||||
|
' + rt type BLOCKWISE',
|
||||||
|
'Replacement string with timestamp ' .. epoch .. ':',
|
||||||
|
' @ Description__________ Value',
|
||||||
|
' - :s replacement string CMD',
|
||||||
|
' - :s replacement string SEARCH',
|
||||||
|
' - :s replacement string EXPR',
|
||||||
|
' - :s replacement string INPUT',
|
||||||
|
' - :s replacement string DEBUG',
|
||||||
|
'Buffer list with timestamp ' .. epoch .. ':',
|
||||||
|
' # Expected array of maps',
|
||||||
|
' = [{="a": +(10)"ac\\0df\\ngi\\"tt\\.", TRUE: FALSE}, [NIL, +(-10)""]]',
|
||||||
|
'Buffer list with timestamp ' .. epoch .. ':',
|
||||||
|
' % Key Description Value',
|
||||||
|
'',
|
||||||
|
' % Key Description Value',
|
||||||
|
'Header with timestamp ' .. epoch .. ':',
|
||||||
|
' % Key Description________ Value',
|
||||||
|
' + se place cursor at end TRUE',
|
||||||
|
})
|
||||||
|
nvim_command([[
|
||||||
|
function GetSyntax()
|
||||||
|
let lines = []
|
||||||
|
for l in range(1, line('$'))
|
||||||
|
let columns = []
|
||||||
|
let line = getline(l)
|
||||||
|
for c in range(1, col([l, '$']) - 1)
|
||||||
|
let synstack = map(synstack(l, c), 'synIDattr(v:val, "name")')
|
||||||
|
if !empty(columns) && columns[-1][0] ==# synstack
|
||||||
|
let columns[-1][1] .= line[c - 1]
|
||||||
|
else
|
||||||
|
call add(columns, [ synstack, line[c - 1] ])
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
call add(lines, columns)
|
||||||
|
endfor
|
||||||
|
return lines
|
||||||
|
endfunction
|
||||||
|
]])
|
||||||
|
local hname = function(s) return {{'ShaDaEntryHeader', 'ShaDaEntryName'},
|
||||||
|
s} end
|
||||||
|
local h = function(s) return {{'ShaDaEntryHeader'}, s} end
|
||||||
|
local htsnum = function(s) return {
|
||||||
|
{'ShaDaEntryHeader', 'ShaDaEntryTimestamp', 'ShaDaEntryTimestampNumber'},
|
||||||
|
s
|
||||||
|
} end
|
||||||
|
local synhtssep = function(s)
|
||||||
|
return {{'ShaDaEntryHeader', 'ShaDaEntryTimestamp'}, s}
|
||||||
|
end
|
||||||
|
local synepoch = {
|
||||||
|
year = htsnum(os.date('%Y', 0)),
|
||||||
|
month = htsnum(os.date('%m', 0)),
|
||||||
|
day = htsnum(os.date('%d', 0)),
|
||||||
|
hour = htsnum(os.date('%H', 0)),
|
||||||
|
minute = htsnum(os.date('%M', 0)),
|
||||||
|
second = htsnum(os.date('%S', 0)),
|
||||||
|
}
|
||||||
|
local msh = function(s) return {{'ShaDaEntryMapShort',
|
||||||
|
'ShaDaEntryMapHeader'}, s} end
|
||||||
|
local mlh = function(s) return {{'ShaDaEntryMapLong',
|
||||||
|
'ShaDaEntryMapHeader'}, s} end
|
||||||
|
local ah = function(s) return {{'ShaDaEntryArray',
|
||||||
|
'ShaDaEntryArrayHeader'}, s} end
|
||||||
|
local mses = function(s) return {{'ShaDaEntryMapShort',
|
||||||
|
'ShaDaEntryMapShortEntryStart'}, s} end
|
||||||
|
local mles = function(s) return {{'ShaDaEntryMapLong',
|
||||||
|
'ShaDaEntryMapLongEntryStart'}, s} end
|
||||||
|
local act = funcs.GetSyntax()
|
||||||
|
local ms = function(syn)
|
||||||
|
return {
|
||||||
|
{'ShaDaEntryMap' .. syn, 'ShaDaEntryMap' .. syn .. 'EntryStart'}, ' + '
|
||||||
|
}
|
||||||
|
end
|
||||||
|
local as = function()
|
||||||
|
return {{'ShaDaEntryArray', 'ShaDaEntryArrayEntryStart'}, ' - '}
|
||||||
|
end
|
||||||
|
local ad = function(s) return {{'ShaDaEntryArray',
|
||||||
|
'ShaDaEntryArrayDescription'}, s} end
|
||||||
|
local mbas = function(syn)
|
||||||
|
return {
|
||||||
|
{'ShaDaEntryMap' .. syn, 'ShaDaEntryMapBinArrayStart'},
|
||||||
|
' | - '
|
||||||
|
}
|
||||||
|
end
|
||||||
|
local msk = function(s) return {{'ShaDaEntryMapShort',
|
||||||
|
'ShaDaEntryMapShortKey'}, s} end
|
||||||
|
local mlk = function(s) return {{'ShaDaEntryMapLong',
|
||||||
|
'ShaDaEntryMapLongKey'}, s} end
|
||||||
|
local mld = function(s) return {{'ShaDaEntryMapLong',
|
||||||
|
'ShaDaEntryMapLongDescription'}, s} end
|
||||||
|
local c = function(s) return {{'ShaDaComment'}, s} end
|
||||||
|
local exp = {
|
||||||
|
{
|
||||||
|
hname('Header'), h(' with timestamp '),
|
||||||
|
synepoch.year, synhtssep('-'), synepoch.month, synhtssep('-'),
|
||||||
|
synepoch.day, synhtssep('T'), synepoch.hour, synhtssep(':'),
|
||||||
|
synepoch.minute, synhtssep(':'), synepoch.second, h(':'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
msh(' % Key Value'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ms('Short'), msk('t '),
|
||||||
|
{{'ShaDaEntryMapShort', 'ShaDaMsgpackBinaryString',
|
||||||
|
'ShaDaMsgpackStringQuotes'}, '"'},
|
||||||
|
{{'ShaDaEntryMapShort', 'ShaDaMsgpackBinaryString'}, 'test'},
|
||||||
|
{{'ShaDaEntryMapShort', 'ShaDaMsgpackStringQuotes'}, '"'},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
hname('Jump'), h(' with timestamp '),
|
||||||
|
synepoch.year, synhtssep('-'), synepoch.month, synhtssep('-'),
|
||||||
|
synepoch.day, synhtssep('T'), synepoch.hour, synhtssep(':'),
|
||||||
|
synepoch.minute, synhtssep(':'), synepoch.second, h(':'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
mlh(' % Key________ Description Value'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ms('Long'), mlk('n '), mld('name '),
|
||||||
|
{{'ShaDaEntryMapLong', 'ShaDaMsgpackCharacter'}, '\'A\''},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ms('Long'), mlk('f '), mld('file name '),
|
||||||
|
{{'ShaDaEntryMapLong', 'ShaDaMsgpackArray',
|
||||||
|
'ShaDaMsgpackArrayBraces'}, '['},
|
||||||
|
{{'ShaDaEntryMapLong', 'ShaDaMsgpackArray', 'ShaDaMsgpackBinaryString',
|
||||||
|
'ShaDaMsgpackStringQuotes'}, '"'},
|
||||||
|
{{'ShaDaEntryMapLong', 'ShaDaMsgpackArray', 'ShaDaMsgpackBinaryString'},
|
||||||
|
'foo'},
|
||||||
|
{{'ShaDaEntryMapLong', 'ShaDaMsgpackArray', 'ShaDaMsgpackStringQuotes'},
|
||||||
|
'"'},
|
||||||
|
{{'ShaDaEntryMapLong', 'ShaDaMsgpackArrayBraces'}, ']'},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ms('Long'), mlk('l '), mld('line number '),
|
||||||
|
{{'ShaDaEntryMapLong', 'ShaDaMsgpackInteger'}, '2'},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ms('Long'), mlk('c '), mld('column '),
|
||||||
|
{{'ShaDaEntryMapLong', 'ShaDaMsgpackInteger'}, '-200'},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
hname('Register'), h(' with timestamp '),
|
||||||
|
synepoch.year, synhtssep('-'), synepoch.month, synhtssep('-'),
|
||||||
|
synepoch.day, synhtssep('T'), synepoch.hour, synhtssep(':'),
|
||||||
|
synepoch.minute, synhtssep(':'), synepoch.second, h(':'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
mlh(' % Key Description Value'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ms('Long'), mlk('rc '), mld('contents '),
|
||||||
|
{{'ShaDaEntryMapLong', 'ShaDaMsgpackMultilineArray'}, '@'},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
mbas('Long'),
|
||||||
|
{{'ShaDaEntryMapLong', 'ShaDaMsgpackMap', 'ShaDaMsgpackMapBraces'},
|
||||||
|
'{'},
|
||||||
|
{{'ShaDaEntryMapLong', 'ShaDaMsgpackMap', 'ShaDaMsgpackBinaryString',
|
||||||
|
'ShaDaMsgpackStringQuotes'}, '"'},
|
||||||
|
{{'ShaDaEntryMapLong', 'ShaDaMsgpackMap', 'ShaDaMsgpackBinaryString'},
|
||||||
|
'abcdefghijklmnopqrstuvwxyz'},
|
||||||
|
{{'ShaDaEntryMapLong', 'ShaDaMsgpackMap', 'ShaDaMsgpackStringQuotes'},
|
||||||
|
'"'},
|
||||||
|
{{'ShaDaEntryMapLong', 'ShaDaMsgpackMap', 'ShaDaMsgpackColon'}, ':'},
|
||||||
|
{{'ShaDaEntryMapLong', 'ShaDaMsgpackMap'}, ' '},
|
||||||
|
{{'ShaDaEntryMapLong', 'ShaDaMsgpackMap', 'ShaDaMsgpackFloat'}, '1.0'},
|
||||||
|
{{'ShaDaEntryMapLong', 'ShaDaMsgpackMapBraces'}, '}'},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ms('Long'), mlk('rt '), mld('type '),
|
||||||
|
{{'ShaDaEntryMapLong', 'ShaDaMsgpackShaDaKeyword'}, 'CHARACTERWISE'},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ms('Long'), mlk('rt '), mld('type '),
|
||||||
|
{{'ShaDaEntryMapLong', 'ShaDaMsgpackShaDaKeyword'}, 'LINEWISE'},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ms('Long'), mlk('rt '), mld('type '),
|
||||||
|
{{'ShaDaEntryMapLong', 'ShaDaMsgpackShaDaKeyword'}, 'BLOCKWISE'},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
hname('Replacement string'), h(' with timestamp '),
|
||||||
|
synepoch.year, synhtssep('-'), synepoch.month, synhtssep('-'),
|
||||||
|
synepoch.day, synhtssep('T'), synepoch.hour, synhtssep(':'),
|
||||||
|
synepoch.minute, synhtssep(':'), synepoch.second, h(':'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ah(' @ Description__________ Value'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
as(), ad(':s replacement string '),
|
||||||
|
{{'ShaDaEntryArray', 'ShaDaMsgpackShaDaKeyword'}, 'CMD'},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
as(), ad(':s replacement string '),
|
||||||
|
{{'ShaDaEntryArray', 'ShaDaMsgpackShaDaKeyword'}, 'SEARCH'},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
as(), ad(':s replacement string '),
|
||||||
|
{{'ShaDaEntryArray', 'ShaDaMsgpackShaDaKeyword'}, 'EXPR'},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
as(), ad(':s replacement string '),
|
||||||
|
{{'ShaDaEntryArray', 'ShaDaMsgpackShaDaKeyword'}, 'INPUT'},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
{{'ShaDaEntryArrayEntryStart'}, ' - '},
|
||||||
|
{{'ShaDaEntryArrayDescription'}, ':s replacement string '},
|
||||||
|
{{'ShaDaMsgpackShaDaKeyword'}, 'DEBUG'},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
hname('Buffer list'), h(' with timestamp '),
|
||||||
|
synepoch.year, synhtssep('-'), synepoch.month, synhtssep('-'),
|
||||||
|
synepoch.day, synhtssep('T'), synepoch.hour, synhtssep(':'),
|
||||||
|
synepoch.minute, synhtssep(':'), synepoch.second, h(':'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
c(' # Expected array of maps'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
{{'ShaDaEntryRawMsgpack'}, ' = '},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackArrayBraces'}, '['},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackMapBraces'},
|
||||||
|
'{'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackString'}, '='},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackBinaryString',
|
||||||
|
'ShaDaMsgpackStringQuotes'}, '"'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackBinaryString'},
|
||||||
|
'a'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackStringQuotes'},
|
||||||
|
'"'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackColon'}, ':'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap'}, ' '},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackExt'}, '+('},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackExt',
|
||||||
|
'ShaDaMsgpackExtType'}, '10'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackExt'}, ')'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackBinaryString',
|
||||||
|
'ShaDaMsgpackStringQuotes'}, '"'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackBinaryString'},
|
||||||
|
'ac'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackBinaryString',
|
||||||
|
'ShaDaMsgpackBinaryStringEscape'},
|
||||||
|
'\\0'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackBinaryString'},
|
||||||
|
'df'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackBinaryString',
|
||||||
|
'ShaDaMsgpackBinaryStringEscape'},
|
||||||
|
'\\n'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackBinaryString'},
|
||||||
|
'gi'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackBinaryString',
|
||||||
|
'ShaDaMsgpackBinaryStringEscape'},
|
||||||
|
'\\"'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackBinaryString'},
|
||||||
|
'tt\\.'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackStringQuotes'},
|
||||||
|
'"'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackComma'}, ','},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap'}, ' '},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackKeyword'},
|
||||||
|
'TRUE'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackColon'}, ':'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap'}, ' '},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMap', 'ShaDaMsgpackKeyword'},
|
||||||
|
'FALSE'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackMapBraces'}, '}'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackComma'}, ','},
|
||||||
|
{{'ShaDaMsgpackArray'}, ' '},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackArray', 'ShaDaMsgpackArrayBraces'},
|
||||||
|
'['},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackArray', 'ShaDaMsgpackKeyword'},
|
||||||
|
'NIL'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackArray', 'ShaDaMsgpackComma'}, ','},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackArray'}, ' '},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackArray', 'ShaDaMsgpackExt'}, '+('},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackArray', 'ShaDaMsgpackExt',
|
||||||
|
'ShaDaMsgpackExtType'}, '-10'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackArray', 'ShaDaMsgpackExt'}, ')'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackArray', 'ShaDaMsgpackBinaryString',
|
||||||
|
'ShaDaMsgpackStringQuotes'}, '"'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackArray', 'ShaDaMsgpackStringQuotes'},
|
||||||
|
'"'},
|
||||||
|
{{'ShaDaMsgpackArray', 'ShaDaMsgpackArrayBraces'}, ']'},
|
||||||
|
{{'ShaDaMsgpackArrayBraces'}, ']'},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
hname('Buffer list'), h(' with timestamp '),
|
||||||
|
synepoch.year, synhtssep('-'), synepoch.month, synhtssep('-'),
|
||||||
|
synepoch.day, synhtssep('T'), synepoch.hour, synhtssep(':'),
|
||||||
|
synepoch.minute, synhtssep(':'), synepoch.second, h(':'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
mlh(' % Key Description Value'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
},
|
||||||
|
{
|
||||||
|
mlh(' % Key Description Value'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
hname('Header'), h(' with timestamp '),
|
||||||
|
synepoch.year, synhtssep('-'), synepoch.month, synhtssep('-'),
|
||||||
|
synepoch.day, synhtssep('T'), synepoch.hour, synhtssep(':'),
|
||||||
|
synepoch.minute, synhtssep(':'), synepoch.second, h(':'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
mlh(' % Key Description________ Value'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
{{'ShaDaEntryMapLongEntryStart'}, ' + '},
|
||||||
|
{{'ShaDaEntryMapLongKey'}, 'se '},
|
||||||
|
{{'ShaDaEntryMapLongDescription'}, 'place cursor at end '},
|
||||||
|
{{'ShaDaMsgpackKeyword'}, 'TRUE'},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
eq(exp, act)
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
Loading…
Reference in New Issue
Block a user