Skip to content

Commit 8f17afd

Browse files
committed
Tokenize default correctly in switch statements
Closes atom#66
1 parent bd7da26 commit 8f17afd

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

grammars/javascript.cson

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,11 @@
324324
'name': 'storage.modifier.js'
325325
}
326326
{
327-
'match': '(?<!\\.)\\b(break|case|catch|continue|default|do|else|finally|for|if|import|package|return|switch|throw|try|while|with|yield)(?!\\s*:)\\b'
327+
'match': '(?<!\\.)\\b(break|case|catch|continue|do|else|finally|for|if|import|package|return|switch|throw|try|while|with|yield)(?!\\s*:)\\b'
328+
'name': 'keyword.control.js'
329+
}
330+
{
331+
'match': '(?<!\\.)\\b(default)\\b'
328332
'name': 'keyword.control.js'
329333
}
330334
{

spec/javascript-spec.coffee

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,3 +89,8 @@ describe "Javascript grammar", ->
8989
expect(tokens[3]).toEqual value: 'name', scopes: ['source.js', 'string.quoted.template.js', 'source.js.embedded.source']
9090
expect(tokens[4]).toEqual value: '}', scopes: ['source.js', 'string.quoted.template.js', 'source.js.embedded.source', 'punctuation.section.embedded.js']
9191
expect(tokens[5]).toEqual value: '`', scopes: ['source.js', 'string.quoted.template.js', 'punctuation.definition.string.end.js']
92+
93+
describe "default: in a switch statement", ->
94+
it "tokenizes it as a keyword", ->
95+
{tokens} = grammar.tokenizeLine('default: ')
96+
expect(tokens[0]).toEqual value: 'default', scopes: ['source.js', 'keyword.control.js']

0 commit comments

Comments
 (0)