Skip to content

Commit ae54a55

Browse files
committed
Text.TOML: support local time
1 parent c6e7097 commit ae54a55

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

autoload/vital/__vital__/Text/TOML.vim

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,8 @@ function! s:_value(input) abort
145145
return s:_boolean(a:input)
146146
elseif s:_match(a:input, '\d\{4}-')
147147
return s:_datetime(a:input)
148+
elseif s:_match(a:input, '\d\{2}:')
149+
return s:_local_time(a:input)
148150
elseif s:_match(a:input, '[+-]\?\d\+\%(_\d\+\)*\%(\.\d\+\%(_\d\+\)*\|\%(\.\d\+\%(_\d\+\)*\)\?[eE]\)')
149151
return s:_float(a:input)
150152
elseif s:_match(a:input, '[+-]\?\%(inf\|nan\)')
@@ -236,6 +238,13 @@ function! s:_datetime(input) abort
236238
return s:_consume(a:input, '\d\{4}-\d\{2}-\d\{2}\%([T ]\d\{2}:\d\{2}:\d\{2}\%(\.\d\+\)\?\%(Z\|[+-]\d\{2}:\d\{2}\)\?\)\?')
237239
endfunction
238240

241+
"
242+
" Local Time
243+
"
244+
function! s:_local_time(input) abort
245+
return s:_consume(a:input, '\d\{2}:\d\{2}:\d\{2}\%(\.\d\+\)\?')
246+
endfunction
247+
239248
"
240249
" Array
241250
"

test/Text/TOML.vim

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,16 @@ function! s:suite.__parse__()
433433
call s:assert.same(data.ld1, '1979-05-27')
434434
endfunction
435435

436+
function! parse.local_time()
437+
let data = s:TOML.parse(join([
438+
\ 'lt1 = 07:32:00',
439+
\ 'lt2 = 00:32:00.999999',
440+
\], "\n"))
441+
442+
call s:assert.same(data.lt1, '07:32:00')
443+
call s:assert.same(data.lt2, '00:32:00.999999')
444+
endfunction
445+
436446
function! parse.array()
437447
let data = s:TOML.parse(join([
438448
\ 'integers = [ 1, 2, 3 ]',

0 commit comments

Comments
 (0)