mirror of
1
0
Fork 0
ultimate-vim/sources_non_forked/guile.vim/test/syntax.vader

120 lines
3.2 KiB
Plaintext

# Note: For simplicity we will not check the syntax highlighting of fixed
# keywords like 'define-public', only the highlighting of patterns
Given scheme.guile (Multi-line comment):
#!/usr/local/bin/guile -s
!#
#! This is a
multi-line comment !#
Execute:
for i in range(1, 25)
AssertEqual 'guileComment', SyntaxAt(1, i)
endfor
AssertEqual 'guileComment', SyntaxAt(2, 1)
AssertEqual 'guileComment', SyntaxAt(2, 2)
for i in range(1, 12)
AssertEqual 'guileComment', SyntaxAt(3, i)
endfor
for i in range(1, 21)
AssertEqual 'guileComment', SyntaxAt(4, i)
endfor
-----------------------------------------------------------------------------
Given scheme.guile (keywords):
#:keyword
#:key-word
Execute:
for i in range(1, 9)
AssertEqual 'guileKeyword', SyntaxAt(1, i)
endfor
for i in range(1, 10)
AssertEqual 'guileKeyword', SyntaxAt(2, i)
endfor
-----------------------------------------------------------------------------
Given scheme.guile (Boolean literals):
#true
#false
Execute:
for i in range(1, 5)
AssertEqual 'guileBoolean', SyntaxAt(1, i)
endfor
for i in range(1, 6)
AssertEqual 'guileBoolean', SyntaxAt(2, i)
endfor
-----------------------------------------------------------------------------
Given scheme.guile (Unspecified object representation):
#<unspecified>
Execute:
for i in range(1, 14)
AssertEqual 'guileConstant', SyntaxAt(1, i)
endfor
-----------------------------------------------------------------------------
Given scheme.guile (Bytevector literal):
#vu8(1 2 3 4)
Execute:
for i in range(1, 4)
AssertEqual 'guileQuote', SyntaxAt(1, i)
endfor
-----------------------------------------------------------------------------
Given scheme.guile (Integer number literals):
#b0101 #b+0101 #b-0101 #B0101 #B+0101 #B-0101
#o0237 #o+0237 #o-0237 #O0237 #O+0237 #O-0237
#d0239 #d+0239 #d-0239 #D0239 #D+0239 #D-0239
#x03AF #x+03AF #x-03AF #X03AF #X+03AF #X-03AF
#x03af #x+03af #x-03af #X03af #X+03af #X-03af
Execute:
for i in range(1, 5)
for j in range(1, 6)
for k in [0, 7, 15, 23, 30, 38]
AssertEqual 'guileNumber', SyntaxAt(i, k + j)
endfor
endfor
endfor
-----------------------------------------------------------------------------
Given scheme.guile (Exact decimal number literls):
#e012345 #e+01234 #e-01234 #E012345 #E+01234 #E-01234
#e.12345 #e+.1234 #e-.1234 #E.12345 #E+.1234 #E-.1234
#e0.1234 #e+0.123 #e-0.123 #E0.1234 #E+0.123 #E-0.123
Execute:
for line in [1, 2]
for offset in range(0, 5)
for column in range(1, 8)
AssertEqual 'guileNumber', SyntaxAt(line, offset * 9 + column)
endfor
endfor
endfor
-----------------------------------------------------------------------------
Given scheme.guile (Infinity and NaN literals):
+inf.0 -inf.0 +nan.0 -nan.0
Execute:
for offset in range(0, 3)
for i in range(1, 6)
AssertEqual 'guileNumber', SyntaxAt(1, offset * 7 + i)
endfor
endfor
-----------------------------------------------------------------------------
Given scheme.guile (Syntax-rule macro):
(define-syntax-rule (first-of expr expr* ...)
expr)
Execute:
for i in range(2, 19)
AssertEqual 'guileSyntaxSyntax', SyntaxAt(1, i)
endfor