-
Notifications
You must be signed in to change notification settings - Fork 52
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -22,39 +22,40 @@ describe "Language C# package", -> | |
} | ||
""" | ||
|
||
expect(tokens[1][1]).toEqual value: 'byte', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs', 'storage.value.type.cs'] | ||
expect(tokens[1][5]).toEqual value: '//', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs', 'comment.line.double-slash.cs'] | ||
expect(tokens[1][6]).toEqual value: '(', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs', 'comment.line.double-slash.cs'] | ||
expect(tokens[1][1]).toEqual value: 'byte', scopes: ['source.cs', 'meta.field.declaration.cs', 'storage.value.type.cs'] | ||
expect(tokens[1][5]).toEqual value: '//', scopes: ['source.cs', 'comment.line.double-slash.cs'] | ||
expect(tokens[1][6]).toEqual value: '(', scopes: ['source.cs', 'comment.line.double-slash.cs'] | ||
|
||
tokens = grammar.tokenizeLines """ | ||
struct hi { | ||
byte q; /*(*/ | ||
} | ||
""" | ||
expect(tokens[1][1]).toEqual value: 'byte', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs', 'storage.value.type.cs'] | ||
expect(tokens[1][5]).toEqual value: '/*', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs', 'comment.block.cs', 'punctuation.definition.comment.cs'] | ||
expect(tokens[1][6]).toEqual value: '(', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs', 'comment.block.cs'] | ||
expect(tokens[1][1]).toEqual value: 'byte', scopes: ['source.cs', 'meta.field.declaration.cs', 'storage.value.type.cs'] | ||
expect(tokens[1][5]).toEqual value: '/*', scopes: ['source.cs', 'comment.block.cs', 'punctuation.definition.comment.cs'] | ||
expect(tokens[1][6]).toEqual value: '(', scopes: ['source.cs', 'comment.block.cs'] | ||
|
||
fit "tokenizes method definitions correctly", -> | ||
it "tokenizes method definitions correctly", -> | ||
{tokens} = grammar.tokenizeLine("void func() { }") | ||
expect(tokens[6]).toEqual value: 'void', scopes: ['source.cs', 'meta.method.cs', 'meta.method.return-type.cs', 'storage.type.cs'] | ||
expect(tokens[8]).toEqual value: 'func', scopes: ['source.cs', 'meta.method.cs', 'meta.method.identifier.cs', 'entity.name.function.declaration.cs'] | ||
expect(tokens[9]).toEqual value: '(', scopes: ['source.cs', 'meta.method.cs', 'meta.method.identifier.cs', 'punctuation.definition.method-parameters.begin.cs'] | ||
expect(tokens[0]).toEqual value: 'void', scopes: ['source.cs', 'meta.method.cs', 'meta.method.return-type.cs', 'storage.type.cs'] | ||
expect(tokens[2]).toEqual value: 'func', scopes: ['source.cs', 'meta.method.cs', 'meta.method.identifier.cs', 'entity.name.function.declaration.cs'] | ||
expect(tokens[3]).toEqual value: '(', scopes: ['source.cs', 'meta.method.cs', 'meta.method.identifier.cs', 'punctuation.definition.method-parameters.begin.cs'] | ||
|
||
{tokens} = grammar.tokenizeLine("dictionary<int, string> func() { }") | ||
console.log(tokens) | ||
expect(tokens[5]).toEqual value: 'func', scopes: ['source.cs', 'meta.method-call.cs', 'meta.method.cs'] | ||
expect(tokens[6]).toEqual value: '(', scopes: ['source.cs', 'meta.method-call.cs', 'punctuation.definition.method-parameters.begin.cs'] | ||
expect(tokens[0]).toEqual value: 'dictionary', scopes: ['source.cs', 'meta.method.cs', 'meta.method.return-type.cs', 'meta.generic.class.identifier.cs'] | ||
expect(tokens[2]).toEqual value: 'int', scopes: ['source.cs', 'meta.method.cs', 'meta.method.return-type.cs', 'meta.generic.type.specifier.cs', 'storage.value.type.cs'] | ||
expect(tokens[6]).toEqual value: 'func', scopes: ['source.cs', 'meta.method.cs', 'meta.method.identifier.cs', 'entity.name.function.declaration.cs'] | ||
expect(tokens[7]).toEqual value: '(', scopes: ['source.cs', 'meta.method.cs', 'meta.method.identifier.cs', 'punctuation.definition.method-parameters.begin.cs'] | ||
|
||
{tokens} = grammar.tokenizeLine("void func(test = default_value) { }") | ||
expect(tokens[0]).toEqual value: 'void ', scopes: ['source.cs'] | ||
expect(tokens[1]).toEqual value: 'func', scopes: ['source.cs', 'meta.method-call.cs', 'meta.method.cs'] | ||
expect(tokens[2]).toEqual value: '(', scopes: ['source.cs', 'meta.method-call.cs', 'punctuation.definition.method-parameters.begin.cs'] | ||
expect(tokens[0]).toEqual value: 'void', scopes: ['source.cs', 'meta.method.cs', 'meta.method.return-type.cs', 'storage.type.cs'] | ||
expect(tokens[2]).toEqual value: 'func', scopes: ['source.cs', 'meta.method.cs', 'meta.method.identifier.cs', 'entity.name.function.declaration.cs'] | ||
expect(tokens[3]).toEqual value: '(', scopes: ['source.cs', 'meta.method.cs', 'meta.method.identifier.cs', 'punctuation.definition.method-parameters.begin.cs'] | ||
|
||
it "tokenizes method calls", -> | ||
{tokens} = grammar.tokenizeLine("a = func(1)") | ||
expect(tokens[1]).toEqual value: 'func', scopes: ['source.cs', 'meta.method-call.cs', 'meta.method.cs'] | ||
expect(tokens[2]).toEqual value: '(', scopes: ['source.cs', 'meta.method-call.cs', 'punctuation.definition.method-parameters.begin.cs'] | ||
{tokens} = grammar.tokenizeLine("var a = func(1)") | ||
expect(tokens[4]).toEqual value: 'func', scopes: ['source.cs', 'meta.method-call.cs', 'meta.method.cs'] | ||
expect(tokens[5]).toEqual value: '(', scopes: ['source.cs', 'meta.method-call.cs', 'punctuation.definition.method-parameters.begin.cs'] | ||
|
||
{tokens} = grammar.tokenizeLine("func()") | ||
expect(tokens[0]).toEqual value: 'func', scopes: ['source.cs', 'meta.method-call.cs', 'meta.method.cs'] | ||
|
@@ -75,13 +76,13 @@ describe "Language C# package", -> | |
}) | ||
""" | ||
|
||
expect(tokens[1][5]).toEqual value: 'C', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs', 'meta.method-call.cs', 'meta.method.cs'] | ||
expect(tokens[1][6]).toEqual value: '(', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs', 'meta.method-call.cs', 'punctuation.definition.method-parameters.begin.cs'] | ||
expect(tokens[1][7]).toEqual value: '"', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs', 'meta.method-call.cs', 'string.quoted.double.cs', 'punctuation.definition.string.begin.cs'] | ||
expect(tokens[1][8]).toEqual value: '1.1 10', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs', 'meta.method-call.cs', 'string.quoted.double.cs'] | ||
expect(tokens[1][9]).toEqual value: '\\n', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs', 'meta.method-call.cs', 'string.quoted.double.cs', 'constant.character.escape.cs'] | ||
expect(tokens[1][10]).toEqual value: '"', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs', 'meta.method-call.cs', 'string.quoted.double.cs', 'punctuation.definition.string.end.cs'] | ||
expect(tokens[1][11]).toEqual value: ')', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs', 'meta.method-call.cs', 'punctuation.definition.method-parameters.end.cs'] | ||
expect(tokens[1][5]).toEqual value: 'C', scopes: ['source.cs', 'meta.field.declaration.cs', 'meta.method-call.cs', 'meta.method.cs'] | ||
expect(tokens[1][6]).toEqual value: '(', scopes: ['source.cs', 'meta.field.declaration.cs', 'meta.method-call.cs', 'punctuation.definition.method-parameters.begin.cs'] | ||
expect(tokens[1][7]).toEqual value: '"', scopes: ['source.cs', 'meta.field.declaration.cs', 'meta.method-call.cs', 'string.quoted.double.cs', 'punctuation.definition.string.begin.cs'] | ||
expect(tokens[1][8]).toEqual value: '1.1 10', scopes: ['source.cs', 'meta.field.declaration.cs', 'meta.method-call.cs', 'string.quoted.double.cs'] | ||
expect(tokens[1][9]).toEqual value: '\\n', scopes: ['source.cs', 'meta.field.declaration.cs', 'meta.method-call.cs', 'string.quoted.double.cs', 'constant.character.escape.cs'] | ||
expect(tokens[1][10]).toEqual value: '"', scopes: ['source.cs', 'meta.field.declaration.cs', 'meta.method-call.cs', 'string.quoted.double.cs', 'punctuation.definition.string.end.cs'] | ||
expect(tokens[1][11]).toEqual value: ')', scopes: ['source.cs', 'meta.field.declaration.cs', 'meta.method-call.cs', 'punctuation.definition.method-parameters.end.cs'] | ||
|
||
it "tokenizes strings in classes", -> | ||
tokens = grammar.tokenizeLines """ | ||
|
@@ -91,25 +92,10 @@ describe "Language C# package", -> | |
} | ||
""" | ||
|
||
expect(tokens[2][5]).toEqual value: '"', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs', 'string.quoted.double.cs', 'punctuation.definition.string.begin.cs'] | ||
expect(tokens[2][6]).toEqual value: '(', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs', 'string.quoted.double.cs'] | ||
expect(tokens[2][7]).toEqual value: '"', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs', 'string.quoted.double.cs', 'punctuation.definition.string.end.cs'] | ||
expect(tokens[2][8]).toEqual value: ';', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs'] | ||
|
||
tokens = grammar.tokenizeLines """ | ||
class a | ||
{ | ||
b([c(d = "Command e")] string f) | ||
{ | ||
} | ||
} | ||
""" | ||
|
||
expect(tokens[2][7]).toEqual value: '"', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs', 'meta.method-call.cs', 'meta.method-call.cs', 'string.quoted.double.cs', 'punctuation.definition.string.begin.cs'] | ||
expect(tokens[2][8]).toEqual value: 'Command e', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs', 'meta.method-call.cs', 'meta.method-call.cs', 'string.quoted.double.cs'] | ||
expect(tokens[2][9]).toEqual value: '"', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs', 'meta.method-call.cs', 'meta.method-call.cs', 'string.quoted.double.cs', 'punctuation.definition.string.end.cs'] | ||
expect(tokens[2][12]).toEqual value: 'string ', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs', 'meta.method-call.cs', 'storage.reference.type.cs'] | ||
expect(tokens[2][13]).toEqual value: 'f', scopes: ['source.cs', 'meta.class.cs', 'meta.class.body.cs', 'meta.method-call.cs'] | ||
expect(tokens[2][5]).toEqual value: '"', scopes: ['source.cs', 'meta.field.declaration.cs', 'string.quoted.double.cs', 'punctuation.definition.string.begin.cs'] | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
damieng
Author
Contributor
|
||
expect(tokens[2][6]).toEqual value: '(', scopes: ['source.cs', 'meta.field.declaration.cs', 'string.quoted.double.cs'] | ||
expect(tokens[2][7]).toEqual value: '"', scopes: ['source.cs', 'meta.field.declaration.cs', 'string.quoted.double.cs', 'punctuation.definition.string.end.cs'] | ||
expect(tokens[2][8]).toEqual value: ';', scopes: ['source.cs'] | ||
|
||
describe "Preprocessor directives", -> | ||
directives = [ '#if DEBUG', '#else', '#elif RELEASE', '#endif', | ||
|
@damieng Why is 'meta.class.cs' no longer part of the required scope here?