@ -754,13 +754,72 @@ testTokenization('clojure', [
] , 'string' ) ,
// strings
createTestCases ( [
'\"I\'m a little teapot.\"' ,
'\"I\'m a \\\"little\\\" teapot.\"' ,
'\"I\'m' , // this is
'a little' , // a multi-line
'teapot.\"' // string
] , 'string' ) ,
[
{
line : '"I\'m a little teapot."' ,
tokens : [
{ startIndex : 0 , type : 'string.clj' } ,
]
} ,
{
line : '"I\'m a \\"little\\" teapot."' ,
tokens : [
{ startIndex : 0 , type : 'string.clj' } ,
{ startIndex : 7 , type : 'string.escape.clj' } ,
{ startIndex : 9 , type : 'string.clj' } ,
{ startIndex : 15 , type : 'string.escape.clj' } ,
{ startIndex : 17 , type : 'string.clj' } ,
]
}
] ,
// multi-line strings
[
{
line : '"I\'m' ,
tokens : [
{ startIndex : 0 , type : 'string.clj' } ,
]
} ,
{
line : '\\"a little\\"' ,
tokens : [
{ startIndex : 0 , type : 'string.escape.clj' } ,
{ startIndex : 2 , type : 'string.clj' } ,
{ startIndex : 10 , type : 'string.escape.clj' } ,
]
} ,
{
line : 'teapot."' ,
tokens : [
{ startIndex : 0 , type : 'string.clj' } ,
]
}
] ,
// strings with other escapes in them (\" \' \\ \b \f \n \r \t)
[ {
line : '"the escape \\" \\\' \\\\ \\b \\f \\n \\r \\t characters"' ,
tokens : [
{ startIndex : 0 , type : 'string.clj' } ,
{ startIndex : 12 , type : 'string.escape.clj' } ,
{ startIndex : 14 , type : 'string.clj' } ,
{ startIndex : 15 , type : 'string.escape.clj' } ,
{ startIndex : 17 , type : 'string.clj' } ,
{ startIndex : 18 , type : 'string.escape.clj' } ,
{ startIndex : 20 , type : 'string.clj' } ,
{ startIndex : 21 , type : 'string.escape.clj' } ,
{ startIndex : 23 , type : 'string.clj' } ,
{ startIndex : 24 , type : 'string.escape.clj' } ,
{ startIndex : 26 , type : 'string.clj' } ,
{ startIndex : 27 , type : 'string.escape.clj' } ,
{ startIndex : 29 , type : 'string.clj' } ,
{ startIndex : 30 , type : 'string.escape.clj' } ,
{ startIndex : 32 , type : 'string.clj' } ,
{ startIndex : 33 , type : 'string.escape.clj' } ,
{ startIndex : 35 , type : 'string.clj' } ,
]
} ] ,
// comments
createTestCases ( [