Skip to content

Commit d009d2f

Browse files
zelenyhlebjjohnstn
authored andcommitted
[eclipse-jdt#1953] Editor formats "record" as keyword
Removed Token-level styling for contextual keywords: record, sealed, permits, non-sealed. Semantic highlighting for these keywords was already provided with org.eclipse.jdt.internal.ui.javaeditor.SemanticHighlightings.RestrictedIdentifiersHighlighting. Signed-off-by: Nikifor Fedorov <[email protected]>
1 parent 3965fae commit d009d2f

File tree

1 file changed

+2
-52
lines changed

1 file changed

+2
-52
lines changed

org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/JavaCodeScanner.java

+2-52
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2000, 2023 IBM Corporation and others.
2+
* Copyright (c) 2000, 2025 IBM Corporation and others.
33
*
44
* This program and the accompanying materials
55
* are made available under the terms of the Eclipse Public License 2.0
@@ -12,6 +12,7 @@
1212
* IBM Corporation - initial API and implementation
1313
* Philippe Ombredanne <[email protected]> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=150989
1414
* Anton Leherbauer (Wind River Systems) - [misc] Allow custom token for WhitespaceRule - https://bugs.eclipse.org/bugs/show_bug.cgi?id=251224
15+
* Nikifor Fedorov <[email protected]> - [#1953] Editor formats "record" as keyword - https://github.com/eclipse-jdt/eclipse.jdt.ui/issues/1953
1516
*******************************************************************************/
1617
package org.eclipse.jdt.internal.ui.text.java;
1718

@@ -157,35 +158,6 @@ public IToken evaluate(ICharacterScanner scanner) {
157158
}
158159
}
159160

160-
161-
private static class VersionedWordMatcher extends CombinedWordRule.WordMatcher implements ISourceVersionDependent {
162-
163-
private final IToken fDefaultToken;
164-
private final String fVersion;
165-
private boolean fIsVersionMatch;
166-
167-
public VersionedWordMatcher(IToken defaultToken, String version, String currentVersion) {
168-
fDefaultToken= defaultToken;
169-
fVersion= version;
170-
setSourceVersion(currentVersion);
171-
}
172-
173-
@Override
174-
public void setSourceVersion(String version) {
175-
fIsVersionMatch= JavaCore.compareJavaVersions(fVersion, version) <= 0;
176-
}
177-
178-
@Override
179-
public IToken evaluate(ICharacterScanner scanner, CombinedWordRule.CharacterBuffer word) {
180-
IToken token= super.evaluate(scanner, word);
181-
182-
if (fIsVersionMatch || token.isUndefined())
183-
return token;
184-
185-
return fDefaultToken;
186-
}
187-
}
188-
189161
/**
190162
* An annotation rule matches the '@' symbol, any following whitespace and
191163
* optionally a following <code>interface</code> keyword.
@@ -366,8 +338,6 @@ public void setSourceVersion(String version) {
366338

367339
private static final String INTERFACE= "interface"; //$NON-NLS-1$
368340
private static final String RETURN= "return"; //$NON-NLS-1$
369-
private static String[] fgJava14Keywords= { "record" }; //$NON-NLS-1$
370-
private static String[] fgJava16Keywords= { "sealed", "permits" }; //$NON-NLS-1$ //$NON-NLS-2$
371341
private static String[] fgJava9ModuleInfoKeywords= { "module", "requires", "exports", "to", "provides", "with", "uses", "open", "opens", "transitive", "import", "static" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$
372342

373343
private static String[] fgTypes= { "void", "boolean", "char", "byte", "short", "strictfp", "int", "long", "float", "double" }; //$NON-NLS-1$ //$NON-NLS-5$ //$NON-NLS-7$ //$NON-NLS-6$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-2$
@@ -450,26 +420,6 @@ protected List<IRule> createRules() {
450420
JavaWordDetector wordDetector= new JavaWordDetector();
451421
CombinedWordRule combinedWordRule= new CombinedWordRule(wordDetector, defaultToken);
452422

453-
VersionedWordMatcher j14Matcher= new VersionedWordMatcher(defaultToken, JavaCore.VERSION_14, version);
454-
455-
token= getToken(IJavaColorConstants.JAVA_KEYWORD);
456-
for (String fgJava14Keyword : fgJava14Keywords) {
457-
j14Matcher.addWord(fgJava14Keyword, token);
458-
}
459-
460-
combinedWordRule.addWordMatcher(j14Matcher);
461-
fVersionDependentRules.add(j14Matcher);
462-
463-
VersionedWordMatcher j16Matcher= new VersionedWordMatcher(defaultToken, JavaCore.VERSION_16, version);
464-
465-
token= getToken(IJavaColorConstants.JAVA_KEYWORD);
466-
for (String fgJava16Keyword : fgJava16Keywords) {
467-
j16Matcher.addWord(fgJava16Keyword, token);
468-
}
469-
470-
combinedWordRule.addWordMatcher(j16Matcher);
471-
fVersionDependentRules.add(j16Matcher);
472-
473423
// Add rule for operators
474424
token= getToken(IJavaColorConstants.JAVA_OPERATOR);
475425
rules.add(new OperatorRule(token));

0 commit comments

Comments
 (0)