From 77aa83c8da59523616ac55b277f80fefe38c3f2a Mon Sep 17 00:00:00 2001 From: spirou07 Date: Sat, 23 Dec 2017 15:43:45 +0100 Subject: [PATCH 1/5] fix --- grammars/java.cson | 3 +++ spec/java-spec.coffee | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/grammars/java.cson b/grammars/java.cson index f1764db..dbf97c6 100644 --- a/grammars/java.cson +++ b/grammars/java.cson @@ -1249,6 +1249,9 @@ 'begin': '(?=private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)' 'end': '(?=;)' 'patterns': [ + { + 'include': '#object-types' + } { 'include': '#storage-modifiers' } diff --git a/spec/java-spec.coffee b/spec/java-spec.coffee index 8609cbd..bf8c46a 100644 --- a/spec/java-spec.coffee +++ b/spec/java-spec.coffee @@ -1056,6 +1056,7 @@ describe 'Java grammar', -> class A { private B[] arr; private int[][] two = null; + private B arr; } ''' @@ -1080,6 +1081,16 @@ describe 'Java grammar', -> expect(lines[2][13]).toEqual value: 'null', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'meta.definition.variable.java', 'constant.language.java'] expect(lines[2][14]).toEqual value: ';', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'punctuation.terminator.java'] + expect(lines[3][1]).toEqual value: 'private', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'storage.modifier.java'] + expect(lines[3][3]).toEqual value: 'B', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'meta.definition.variable.java', 'storage.type.java'] + expect(lines[3][4]).toEqual value: '<', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'meta.definition.variable.java', 'punctuation.bracket.angle.java'] + expect(lines[3][5]).toEqual value: 'T', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'meta.definition.variable.java', 'storage.type.generic.java'] + expect(lines[3][6]).toEqual value: '[', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'meta.definition.variable.java', 'punctuation.bracket.square.java'] + expect(lines[3][7]).toEqual value: ']', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'meta.definition.variable.java', 'punctuation.bracket.square.java'] + expect(lines[3][8]).toEqual value: '>', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'meta.definition.variable.java', 'punctuation.bracket.angle.java'] + expect(lines[3][10]).toEqual value: 'arr', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'meta.definition.variable.java', 'variable.other.definition.java'] + expect(lines[3][11]).toEqual value: ';', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'punctuation.terminator.java'] + it 'tokenizes lambda expressions', -> {tokens} = grammar.tokenizeLine '(String s1) -> s1.length() - outer.length();' From 43f965d2d4dc5aaa7c9858275ee29e8b2e270f4c Mon Sep 17 00:00:00 2001 From: spirou07 Date: Sat, 23 Dec 2017 15:46:26 +0100 Subject: [PATCH 2/5] fix --- grammars/java.cson | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grammars/java.cson b/grammars/java.cson index dbf97c6..10503e6 100644 --- a/grammars/java.cson +++ b/grammars/java.cson @@ -1250,7 +1250,7 @@ 'end': '(?=;)' 'patterns': [ { - 'include': '#object-types' + 'include': '#all-types' } { 'include': '#storage-modifiers' From 9a1f4aaa03453cac9dc0dea9a948ccd3ef60c38c Mon Sep 17 00:00:00 2001 From: spirou07 Date: Tue, 26 Dec 2017 09:40:16 +0100 Subject: [PATCH 3/5] fix code to fulfill spec --- grammars/java.cson | 6 +++--- spec/java-spec.coffee | 11 ----------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/grammars/java.cson b/grammars/java.cson index 10503e6..1c1d006 100644 --- a/grammars/java.cson +++ b/grammars/java.cson @@ -1249,13 +1249,13 @@ 'begin': '(?=private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)' 'end': '(?=;)' 'patterns': [ - { - 'include': '#all-types' - } { 'include': '#storage-modifiers' } { 'include': '#variables' } + { + 'include': '#all-types' + } ] diff --git a/spec/java-spec.coffee b/spec/java-spec.coffee index bf8c46a..8609cbd 100644 --- a/spec/java-spec.coffee +++ b/spec/java-spec.coffee @@ -1056,7 +1056,6 @@ describe 'Java grammar', -> class A { private B[] arr; private int[][] two = null; - private B arr; } ''' @@ -1081,16 +1080,6 @@ describe 'Java grammar', -> expect(lines[2][13]).toEqual value: 'null', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'meta.definition.variable.java', 'constant.language.java'] expect(lines[2][14]).toEqual value: ';', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'punctuation.terminator.java'] - expect(lines[3][1]).toEqual value: 'private', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'storage.modifier.java'] - expect(lines[3][3]).toEqual value: 'B', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'meta.definition.variable.java', 'storage.type.java'] - expect(lines[3][4]).toEqual value: '<', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'meta.definition.variable.java', 'punctuation.bracket.angle.java'] - expect(lines[3][5]).toEqual value: 'T', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'meta.definition.variable.java', 'storage.type.generic.java'] - expect(lines[3][6]).toEqual value: '[', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'meta.definition.variable.java', 'punctuation.bracket.square.java'] - expect(lines[3][7]).toEqual value: ']', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'meta.definition.variable.java', 'punctuation.bracket.square.java'] - expect(lines[3][8]).toEqual value: '>', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'meta.definition.variable.java', 'punctuation.bracket.angle.java'] - expect(lines[3][10]).toEqual value: 'arr', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'meta.definition.variable.java', 'variable.other.definition.java'] - expect(lines[3][11]).toEqual value: ';', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'punctuation.terminator.java'] - it 'tokenizes lambda expressions', -> {tokens} = grammar.tokenizeLine '(String s1) -> s1.length() - outer.length();' From 70e6a14b564510cc31006d483001ae6332da78a7 Mon Sep 17 00:00:00 2001 From: spirou07 Date: Tue, 26 Dec 2017 09:48:47 +0100 Subject: [PATCH 4/5] fix for invalid int --- grammars/java.cson | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/grammars/java.cson b/grammars/java.cson index 1c1d006..8dcb779 100644 --- a/grammars/java.cson +++ b/grammars/java.cson @@ -1256,6 +1256,9 @@ 'include': '#variables' } { - 'include': '#all-types' + 'include': '#primitive-arrays' + } + { + 'include': '#object-types' } ] From 7eec144046b612eabe2b49c2698ec23551363b83 Mon Sep 17 00:00:00 2001 From: spirou07 Date: Wed, 27 Dec 2017 11:19:30 +0100 Subject: [PATCH 5/5] arrays in patterns + tests --- grammars/java.cson | 3 +++ spec/java-spec.coffee | 17 +++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/grammars/java.cson b/grammars/java.cson index 8dcb779..33b209b 100644 --- a/grammars/java.cson +++ b/grammars/java.cson @@ -670,6 +670,9 @@ '1': 'name': 'storage.type.java' } + { + 'include': '#primitive-arrays' + } { 'match': '[a-zA-Z$_][a-zA-Z0-9$_]*' 'name': 'storage.type.generic.java' diff --git a/spec/java-spec.coffee b/spec/java-spec.coffee index 8609cbd..85caeaa 100644 --- a/spec/java-spec.coffee +++ b/spec/java-spec.coffee @@ -1253,6 +1253,8 @@ describe 'Java grammar', -> private Integer $tar_war$; double a,b,c;double d; String[] primitiveArray; + private Foo hi; + Foo hi; } ''' @@ -1330,6 +1332,21 @@ describe 'Java grammar', -> expect(lines[13][3]).toEqual value: ']', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'meta.definition.variable.java', 'punctuation.bracket.square.java'] expect(lines[13][5]).toEqual value: 'primitiveArray', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'meta.definition.variable.java', 'variable.other.definition.java'] + expect(lines[14][1]).toEqual value: 'private', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'storage.modifier.java'] + expect(lines[14][3]).toEqual value: 'Foo', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'storage.type.java'] + expect(lines[14][4]).toEqual value: '<', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'punctuation.bracket.angle.java'] + expect(lines[14][5]).toEqual value: 'int', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'storage.type.primitive.array.java'] + expect(lines[14][6]).toEqual value: '[', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'punctuation.bracket.square.java'] + expect(lines[14][7]).toEqual value: ']', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'punctuation.bracket.square.java'] + expect(lines[14][8]).toEqual value: '>', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'punctuation.bracket.angle.java'] + + expect(lines[15][1]).toEqual value: 'Foo', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'storage.type.java'] + expect(lines[15][2]).toEqual value: '<', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'punctuation.bracket.angle.java'] + expect(lines[15][3]).toEqual value: 'int', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'storage.type.primitive.array.java'] + expect(lines[15][4]).toEqual value: '[', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'punctuation.bracket.square.java'] + expect(lines[15][5]).toEqual value: ']', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'punctuation.bracket.square.java'] + expect(lines[15][6]).toEqual value: '>', scopes: ['source.java', 'meta.class.java', 'meta.class.body.java', 'punctuation.bracket.angle.java'] + it 'tokenizes qualified storage types', -> lines = grammar.tokenizeLines ''' class Test {