mirror of
https://github.com/amix/vimrc
synced 2025-07-14 15:34:59 +08:00
Add support for scheme/racket.
This commit is contained in:
25
sources_non_forked/guile.vim/test/detect.vader
Normal file
25
sources_non_forked/guile.vim/test/detect.vader
Normal file
@ -0,0 +1,25 @@
|
||||
# Test whether Guile is being detected
|
||||
Given (Detect by shebang):
|
||||
#!/usr/local/bin/guile -s
|
||||
!#
|
||||
Execute:
|
||||
Assert guile#detect()
|
||||
|
||||
Given (Detect by define-module):
|
||||
(define-module (foo bar))
|
||||
Execute:
|
||||
Assert guile#detect()
|
||||
|
||||
Given (Detect by use-modules):
|
||||
(use-modules (foo bar))
|
||||
Execute:
|
||||
Assert guile#detect()
|
||||
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
# Test whether the file type is adjusted when a Guile file is edited
|
||||
Execute (File type adjustment):
|
||||
edit test/nonsense.scm
|
||||
Then:
|
||||
AssertEqual 'scheme.guile', &ft
|
||||
bwipeout!
|
7
sources_non_forked/guile.vim/test/nonsense.scm
Normal file
7
sources_non_forked/guile.vim/test/nonsense.scm
Normal file
@ -0,0 +1,7 @@
|
||||
#!/usr/local/bin/guile -s
|
||||
!#
|
||||
|
||||
;;; This is a nonsense file, meant to test whether the file type is adjusted
|
||||
;;; properly. The Guile detection itself is tested separately.
|
||||
(display "Hello from Guile!")
|
||||
(newline)
|
119
sources_non_forked/guile.vim/test/syntax.vader
Normal file
119
sources_non_forked/guile.vim/test/syntax.vader
Normal file
@ -0,0 +1,119 @@
|
||||
# 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
|
Reference in New Issue
Block a user