mirror of
https://github.com/amix/vimrc
synced 2025-02-28 14:12:51 +08:00
120 lines
3.2 KiB
Plaintext
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
|