Skip to content
This repository was archived by the owner on Dec 15, 2022. It is now read-only.

Commit 2bd3e55

Browse files
authored
Add support for non-sealed keyword (#237)
### Requirements * Filling out the template is required. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion. * All new code requires tests to ensure against regressions ### Description of the Change This PR adds `non-sealed` keyword as a follow-up to #234. I also had to update the class pattern to capture `-` that is in the keyword. ### Alternate Designs N/A. ### Benefits Adds support for `non-sealed` keyword. ### Possible Drawbacks N/A. ### Applicable Issues Fixes #236
1 parent 57c3371 commit 2bd3e55

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

grammars/java.cson

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
(abstract|assert|boolean|break|byte|case|catch|char|class|
3939
const|continue|default|do|double|else|enum|extends|final|
4040
finally|float|for|goto|if|implements|import|instanceof|int|
41-
interface|long|native|new|package|permits|private|protected|public|
41+
interface|long|native|new|non-sealed|package|permits|private|protected|public|
4242
return|sealed|short|static|strictfp|super|switch|syncronized|this|
4343
throw|throws|transient|try|void|volatile|while|yield|
4444
true|false|null)\\b
@@ -86,7 +86,7 @@
8686
(abstract|assert|boolean|break|byte|case|catch|char|class|
8787
const|continue|default|do|double|else|enum|extends|final|
8888
finally|float|for|goto|if|implements|import|instanceof|int|
89-
interface|long|native|new|package|permits|private|protected|public|
89+
interface|long|native|new|non-sealed|package|permits|private|protected|public|
9090
return|sealed|short|static|strictfp|super|switch|syncronized|this|
9191
throw|throws|transient|try|void|volatile|while|yield|
9292
true|false|null)\\b
@@ -277,7 +277,7 @@
277277
}
278278
]
279279
'class':
280-
'begin': '(?=\\w?[\\w\\s]*\\b(?:class|(?<!@)interface|enum)\\s+[\\w$]+)'
280+
'begin': '(?=\\w?[\\w\\s-]*\\b(?:class|(?<!@)interface|enum)\\s+[\\w$]+)'
281281
'end': '}'
282282
'endCaptures':
283283
'0':
@@ -1407,7 +1407,7 @@
14071407
}
14081408
]
14091409
'storage-modifiers':
1410-
'match': '\\b(public|private|protected|static|final|native|synchronized|abstract|threadsafe|transient|volatile|default|strictfp|sealed)\\b'
1410+
'match': '\\b(public|private|protected|static|final|native|synchronized|abstract|threadsafe|transient|volatile|default|strictfp|sealed|non-sealed)\\b'
14111411
'name': 'storage.modifier.java'
14121412
'strings':
14131413
'patterns': [

spec/java-spec.coffee

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3101,13 +3101,14 @@ describe 'Java grammar', ->
31013101

31023102
expect(lines[4][1]).toEqual value: 'yield', scopes: ['source.java', 'keyword.control.java']
31033103

3104-
it 'tokenizes sealed and permits keywords', ->
3104+
it 'tokenizes sealed, non-sealed, and permits keywords', ->
31053105
lines = grammar.tokenizeLines '''
31063106
public sealed class X extends A implements B permits C { }
31073107
public sealed class X permits A extends B implements C { }
31083108
public sealed class X implements A permits B extends C { }
31093109
public sealed class Shape permits Circle, Rectangle, Square { }
31103110
public sealed interface ConstantDesc permits String, Integer { }
3111+
public non-sealed class Square extends Shape {}
31113112
'''
31123113

31133114
expect(lines[0][2]).toEqual value: 'sealed', scopes: ['source.java', 'meta.class.java', 'storage.modifier.java']
@@ -3120,3 +3121,4 @@ describe 'Java grammar', ->
31203121
expect(lines[3][8]).toEqual value: 'permits', scopes: ['source.java', 'meta.class.java', 'meta.definition.class.permits.classes.java', 'storage.modifier.permits.java']
31213122
expect(lines[4][2]).toEqual value: 'sealed', scopes: ['source.java', 'meta.class.java', 'storage.modifier.java']
31223123
expect(lines[4][8]).toEqual value: 'permits', scopes: ['source.java', 'meta.class.java', 'meta.definition.class.permits.classes.java', 'storage.modifier.permits.java']
3124+
expect(lines[5][2]).toEqual value: 'non-sealed', scopes: ['source.java', 'meta.class.java', 'storage.modifier.java']

0 commit comments

Comments
 (0)