Tokenize regex flags as 'keyword.other' like VS Code does

This commit is contained in:
Sebastian Pahnke 2018-10-01 08:30:48 +02:00
parent 3e6c3ee653
commit ce3a0652b3
3 changed files with 68 additions and 2 deletions

View file

@ -430,7 +430,7 @@ testTokenization('javascript', [
]
}],
[{
[{
line: 'x = /foo/.test(\'\')',
tokens: [
{ startIndex: 0, type: 'identifier.js' },
@ -446,6 +446,39 @@ testTokenization('javascript', [
]
}],
[{
line: '/foo/',
tokens: [
{ startIndex: 0, type: 'regexp.js' }
]
}],
[{
line: '/foo/g',
tokens: [
{ startIndex: 0, type: 'regexp.js' },
{ startIndex: 5, type: 'keyword.other.js' }
]
}],
[{
line: '/foo/gimsuy',
tokens: [
{ startIndex: 0, type: 'regexp.js' },
{ startIndex: 5, type: 'keyword.other.js' }
]
}],
[{
line: '/foo/q', // invalid flag
tokens: [
{ startIndex: 0, type: 'delimiter.js' },
{ startIndex: 1, type: 'identifier.js' },
{ startIndex: 4, type: 'delimiter.js' },
{ startIndex: 5, type: 'identifier.js' }
]
}],
[{
line: 'x = 1 + f(2 / 3, /foo/)',
tokens: [