monaco-editor/src/scheme/scheme.test.ts
2018-07-02 19:14:04 -07:00

91 lines
1.8 KiB
TypeScript

/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { testTokenization } from '../test/testRunner';
testTokenization('scheme', [
// Keywords
[
{
line: 'define-macro some',
tokens: [
{ startIndex: 0, type: 'keyword.scheme' },
{ startIndex: 12, type: 'white.scheme' },
{ startIndex: 13, type: 'variable.scheme' },
],
},
],
// comments
[
{
line: '; comment',
tokens: [{ startIndex: 0, type: 'comment.scheme' }],
},
],
[
{
line: '#| comment',
tokens: [{ startIndex: 0, type: 'comment.scheme' }],
},
{
line: 'multiline',
tokens: [{ startIndex: 0, type: 'comment.scheme' }],
},
{
line: '|# cons',
tokens: [
{ startIndex: 0, type: 'comment.scheme' },
{ startIndex: 2, type: 'white.scheme' },
{ startIndex: 3, type: 'keyword.scheme' },
],
},
],
// strings
[
{
line: '"\\n string "',
tokens: [
{ startIndex: 0, type: 'string.scheme' },
{ startIndex: 1, type: 'string.escape.scheme' },
{ startIndex: 3, type: 'string.scheme' },
],
},
],
[
{
line: '" string \\',
tokens: [{ startIndex: 0, type: 'string.scheme' }],
},
{
line: 'multiline',
tokens: [{ startIndex: 0, type: 'string.scheme' }],
},
{
line: ' ',
tokens: [
// previous line needs to be terminated with \
{ startIndex: 0, type: 'white.scheme' },
],
},
],
// numbers
[
{
line: '1e2',
tokens: [{ startIndex: 0, type: 'number.float.scheme' }],
},
],
[
{
line: '#x03BB',
tokens: [{ startIndex: 0, type: 'number.hex.scheme' }],
},
],
]);