diff --git a/java/java.editor.base/src/org/netbeans/modules/java/editor/base/semantic/SemanticHighlighterBase.java b/java/java.editor.base/src/org/netbeans/modules/java/editor/base/semantic/SemanticHighlighterBase.java index 104440af8673..d38f7ecd0064 100644 --- a/java/java.editor.base/src/org/netbeans/modules/java/editor/base/semantic/SemanticHighlighterBase.java +++ b/java/java.editor.base/src/org/netbeans/modules/java/editor/base/semantic/SemanticHighlighterBase.java @@ -25,6 +25,7 @@ import com.sun.source.tree.ExportsTree; import com.sun.source.tree.ExpressionStatementTree; import com.sun.source.tree.IdentifierTree; +import com.sun.source.tree.ImportTree; import com.sun.source.tree.LiteralTree; import com.sun.source.tree.MemberReferenceTree; import com.sun.source.tree.MemberSelectTree; @@ -1052,6 +1053,21 @@ public Void visitLiteral(LiteralTree node, Void p) { return super.visitLiteral(node, p); } + @Override + public Void visitImport(ImportTree node, Void p) { + if (node.isModule()) { + int startPos = + (int) info.getTrees().getSourcePositions().getStartPosition(info.getCompilationUnit(), node); + + tl.moveToOffset(startPos); + Token t = firstIdentifierToken("module");// NOI18N + if (tl != null) { + contextKeywords.add(t); + } + } + return super.visitImport(node, p); + } + @Override public Void scan(Tree tree, Void p) { if (tree != null && tree.getKind() == Kind.YIELD) { diff --git a/java/java.editor.base/test/unit/src/org/netbeans/modules/java/editor/base/semantic/DetectorTest.java b/java/java.editor.base/test/unit/src/org/netbeans/modules/java/editor/base/semantic/DetectorTest.java index 347fb53f37c6..2e30dd7c2fac 100644 --- a/java/java.editor.base/test/unit/src/org/netbeans/modules/java/editor/base/semantic/DetectorTest.java +++ b/java/java.editor.base/test/unit/src/org/netbeans/modules/java/editor/base/semantic/DetectorTest.java @@ -1090,6 +1090,17 @@ private void t(Object o) { "[PARAMETER], 4:16-4:17"); } + public void testImportModule() throws Exception { + performTest("ImportModuleTest", + """ + import module java.base + public class ImportModuleTest { + } + """, + "[KEYWORD], 0:7-0:13", + "[PUBLIC, CLASS, DECLARATION], 1:13-1:29"); + } + private void performTest(String fileName) throws Exception { performTest(fileName, new Performer() { public void compute(CompilationController parameter, Document doc, final ErrorDescriptionSetter setter) {