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;