java: drop FrontendJavaTypedHandler, move its code to JavaTypedHandlerBase

GitOrigin-RevId: d53e5564dc1813adfe99e9544c9cde5ddbbaac13
This commit is contained in:
Dmitry Batkovich
2025-04-17 13:10:08 +00:00
committed by intellij-monorepo-bot
parent 8eb8701ec7
commit 21a4616d5a
7 changed files with 41 additions and 41 deletions
@@ -18,5 +18,6 @@
<orderEntry type="module" module-name="intellij.java.psi.impl" />
<orderEntry type="module" module-name="intellij.java.indexing" />
<orderEntry type="module" module-name="intellij.java.codeserver.core" />
<orderEntry type="module" module-name="intellij.java.frontback.impl" />
</component>
</module>
@@ -51,5 +51,7 @@
implementationClass="com.intellij.codeInsight.editorActions.smartEnter.JavaSmartEnterProcessor"/>
<java.definitions id="java-backend" implementation="com.intellij.codeInsight.JavaDefinitionService"/>
<highlightErrorFilter implementation="com.intellij.codeInsight.daemon.impl.analysis.JavaHighlightErrorFilter"/>
</extensions>
</idea-plugin>
@@ -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;
@@ -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,
@@ -2661,7 +2661,6 @@
</intentionAction>
<externalAnnotationsArtifactsResolver implementation="com.intellij.jarRepository.ExternalAnnotationsRepositoryResolver"/>
<errorQuickFixProvider implementation="com.intellij.codeInsight.daemon.impl.analysis.JavaErrorQuickFixProvider"/>
<highlightErrorFilter implementation="com.intellij.codeInsight.daemon.impl.analysis.JavaHighlightErrorFilter"/>
<searchEverywhereResultsEqualityProvider implementation="com.intellij.ide.JavaClassAndFileEqualityProvider"/>
@@ -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;