diff --git a/java/codeserver/highlighting/intellij.java.codeserver.highlighting.iml b/java/codeserver/highlighting/intellij.java.codeserver.highlighting.iml
index b7bf4c1a791d..c0803477fcf4 100644
--- a/java/codeserver/highlighting/intellij.java.codeserver.highlighting.iml
+++ b/java/codeserver/highlighting/intellij.java.codeserver.highlighting.iml
@@ -18,5 +18,6 @@
+
\ No newline at end of file
diff --git a/java/java-frontback-impl/resource/intellij.java.frontback.impl.xml b/java/java-frontback-impl/resource/intellij.java.frontback.impl.xml
index 9d4bb0c9d686..2c880c17b575 100644
--- a/java/java-frontback-impl/resource/intellij.java.frontback.impl.xml
+++ b/java/java-frontback-impl/resource/intellij.java.frontback.impl.xml
@@ -51,5 +51,7 @@
implementationClass="com.intellij.codeInsight.editorActions.smartEnter.JavaSmartEnterProcessor"/>
+
+
diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/JavaHighlightErrorFilter.java b/java/java-frontback-impl/src/com/intellij/codeInsight/daemon/impl/analysis/JavaHighlightErrorFilter.java
similarity index 90%
rename from java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/JavaHighlightErrorFilter.java
rename to java/java-frontback-impl/src/com/intellij/codeInsight/daemon/impl/analysis/JavaHighlightErrorFilter.java
index 256dcf3f1cb4..d1f3b04844b5 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/JavaHighlightErrorFilter.java
+++ b/java/java-frontback-impl/src/com/intellij/codeInsight/daemon/impl/analysis/JavaHighlightErrorFilter.java
@@ -1,4 +1,4 @@
-// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.codeInsight.daemon.impl.analysis;
import com.intellij.codeInsight.highlighting.HighlightErrorFilter;
diff --git a/java/java-frontback-impl/src/com/intellij/codeInsight/editorActions/AbstractBasicJavaTypedHandler.java b/java/java-frontback-impl/src/com/intellij/codeInsight/editorActions/JavaTypedHandlerBase.java
similarity index 91%
rename from java/java-frontback-impl/src/com/intellij/codeInsight/editorActions/AbstractBasicJavaTypedHandler.java
rename to java/java-frontback-impl/src/com/intellij/codeInsight/editorActions/JavaTypedHandlerBase.java
index a62660c123e5..18c0ff163444 100644
--- a/java/java-frontback-impl/src/com/intellij/codeInsight/editorActions/AbstractBasicJavaTypedHandler.java
+++ b/java/java-frontback-impl/src/com/intellij/codeInsight/editorActions/JavaTypedHandlerBase.java
@@ -2,9 +2,12 @@
package com.intellij.codeInsight.editorActions;
import com.intellij.codeInsight.CodeInsightSettings;
+import com.intellij.codeInsight.editorActions.smartEnter.JavaSmartEnterProcessor;
+import com.intellij.core.JavaPsiBundle;
import com.intellij.ide.highlighter.JavaFileType;
import com.intellij.lang.ASTNode;
import com.intellij.openapi.application.ApplicationManager;
+import com.intellij.openapi.command.CommandProcessor;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.editor.EditorModificationUtil;
@@ -17,9 +20,11 @@ import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.*;
import com.intellij.psi.codeStyle.CodeStyleManager;
import com.intellij.psi.impl.source.BasicJavaAstTreeUtil;
+import com.intellij.psi.jsp.JspFile;
import com.intellij.psi.tree.IElementType;
import com.intellij.psi.tree.ParentAwareTokenSet;
import com.intellij.psi.util.PsiTreeUtil;
+import com.intellij.psi.util.PsiUtil;
import com.intellij.util.text.CharArrayUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -29,23 +34,37 @@ import java.util.Set;
import static com.intellij.psi.impl.source.BasicJavaElementType.*;
-public abstract class AbstractBasicJavaTypedHandler extends TypedHandlerDelegate {
+public class JavaTypedHandlerBase extends TypedHandlerDelegate {
private boolean myJavaLTTyped;
- protected AbstractBasicJavaTypedHandler() {
+ protected JavaTypedHandlerBase() {
}
- protected abstract boolean isJavaFile(@NotNull PsiFile file);
+ private static boolean isJavaFile(@NotNull PsiFile file) {
+ return file instanceof PsiJavaFile;
+ }
- protected abstract boolean isJspFile(@NotNull PsiFile file);
+ private static boolean isJspFile(@NotNull PsiFile file) {
+ return file instanceof JspFile;
+ }
- protected abstract void autoPopupMemberLookup(@NotNull Project project, @NotNull Editor editor);
+ protected void autoPopupMemberLookup(@NotNull Project project, @NotNull Editor editor) {
- protected abstract void autoPopupJavadocLookup(final @NotNull Project project, final @NotNull Editor editor);
+ }
- protected abstract boolean isLanguageLevel5OrHigher(@NotNull PsiFile file);
+ protected void autoPopupJavadocLookup(final @NotNull Project project, final @NotNull Editor editor) {
- protected abstract @NotNull Result processWhileAndIfStatementBody(@NotNull Project project, @NotNull Editor editor, @NotNull PsiFile file);
+ }
+
+ private static boolean isLanguageLevel5OrHigher(@NotNull PsiFile file) {
+ return PsiUtil.isLanguageLevel5OrHigher(file);
+ }
+
+ private static @NotNull Result processWhileAndIfStatementBody(@NotNull Project project, @NotNull Editor editor, @NotNull PsiFile file) {
+ CommandProcessor.getInstance().executeCommand(project, () -> new JavaSmartEnterProcessor().process(project, editor, file),
+ JavaPsiBundle.message("command.name.insert.block.statement"), null);
+ return Result.STOP;
+ }
/**
@@ -53,16 +72,22 @@ public abstract class AbstractBasicJavaTypedHandler extends TypedHandlerDelegate
*
* @return true if the '=' char was processed
*/
- public abstract boolean handleEquality(Project project, Editor editor, PsiFile file, int offsetBefore);
+ public boolean handleEquality(Project project, Editor editor, PsiFile file, int offsetBefore) {
+ return false;
+ }
/**
* Automatically insert parentheses around the ?: when necessary.
*
* @return true if question mark was handled
*/
- protected abstract boolean handleQuestionMark(Project project, Editor editor, PsiFile file, int offsetBefore);
+ protected boolean handleQuestionMark(Project project, Editor editor, PsiFile file, int offsetBefore) {
+ return false;
+ }
- protected abstract boolean handleAnnotationParameter(Project project, @NotNull Editor editor, @NotNull PsiFile file);
+ protected boolean handleAnnotationParameter(Project project, @NotNull Editor editor, @NotNull PsiFile file) {
+ return false;
+ }
@Override
public @NotNull Result beforeCharTyped(final char c,
diff --git a/java/codeserver/highlighting/src/com/intellij/java/codeserver/highlighting/JavaSyntaxErrorChecker.java b/java/java-frontback-impl/src/com/intellij/java/codeserver/highlighting/JavaSyntaxErrorChecker.java
similarity index 100%
rename from java/codeserver/highlighting/src/com/intellij/java/codeserver/highlighting/JavaSyntaxErrorChecker.java
rename to java/java-frontback-impl/src/com/intellij/java/codeserver/highlighting/JavaSyntaxErrorChecker.java
diff --git a/java/java-impl/resources/META-INF/JavaPlugin.xml b/java/java-impl/resources/META-INF/JavaPlugin.xml
index 143406e9cc5b..a7d9bbebf830 100644
--- a/java/java-impl/resources/META-INF/JavaPlugin.xml
+++ b/java/java-impl/resources/META-INF/JavaPlugin.xml
@@ -2661,7 +2661,6 @@
-
diff --git a/java/java-impl/src/com/intellij/codeInsight/editorActions/JavaTypedHandler.java b/java/java-impl/src/com/intellij/codeInsight/editorActions/JavaTypedHandler.java
index 60384c8cacd2..a92ab1f71ed2 100644
--- a/java/java-impl/src/com/intellij/codeInsight/editorActions/JavaTypedHandler.java
+++ b/java/java-impl/src/com/intellij/codeInsight/editorActions/JavaTypedHandler.java
@@ -6,10 +6,7 @@ import com.intellij.codeInsight.AutoPopupController;
import com.intellij.codeInsight.completion.CompletionType;
import com.intellij.codeInsight.completion.JavaClassReferenceCompletionContributor;
import com.intellij.codeInsight.completion.command.CommandCompletionFactoryKt;
-import com.intellij.codeInsight.editorActions.smartEnter.JavaSmartEnterProcessor;
-import com.intellij.core.JavaPsiBundle;
import com.intellij.java.syntax.parser.JavaKeywords;
-import com.intellij.openapi.command.CommandProcessor;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.editor.highlighter.HighlighterIterator;
@@ -18,7 +15,6 @@ import com.intellij.openapi.util.text.StringUtil;
import com.intellij.patterns.PsiJavaPatterns;
import com.intellij.psi.*;
import com.intellij.psi.javadoc.PsiDocComment;
-import com.intellij.psi.jsp.JspFile;
import com.intellij.psi.tree.IElementType;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.util.PsiUtil;
@@ -32,30 +28,7 @@ import org.jetbrains.annotations.Nullable;
import java.util.List;
-public final class JavaTypedHandler extends AbstractBasicJavaTypedHandler {
-
- @Override
- protected boolean isJavaFile(@NotNull PsiFile file) {
- return file instanceof PsiJavaFile;
- }
-
- @Override
- protected boolean isJspFile(@NotNull PsiFile file) {
- return file instanceof JspFile;
- }
-
- @Override
- protected boolean isLanguageLevel5OrHigher(@NotNull PsiFile file) {
- return PsiUtil.isLanguageLevel5OrHigher(file);
- }
-
- @Override
- protected @NotNull Result processWhileAndIfStatementBody(@NotNull Project project, @NotNull Editor editor, @NotNull PsiFile file) {
- CommandProcessor.getInstance().executeCommand(project, () -> new JavaSmartEnterProcessor().process(project, editor, file),
- JavaPsiBundle.message("command.name.insert.block.statement"), null);
- return Result.STOP;
- }
-
+public final class JavaTypedHandler extends JavaTypedHandlerBase {
@Override
public boolean handleEquality(Project project, Editor editor, PsiFile file, int offsetBefore) {
if (offsetBefore == 0) return false;