[completion] IJPL-207762 registry key for enabling frontend completion

GitOrigin-RevId: 1c6d4e53edc410c6c7c72d8a4346577c51aec16e
This commit is contained in:
Max Medvedev
2025-10-14 00:05:43 +00:00
committed by intellij-monorepo-bot
parent 4a6eb538c7
commit 848dbbec29
6 changed files with 63 additions and 10 deletions
+1 -1
View File
@@ -4436,8 +4436,8 @@ f:com.intellij.codeInsight.lookup.impl.LookupTypedHandler
- execute(com.intellij.openapi.editor.Editor,C,com.intellij.openapi.actionSystem.DataContext):V
- s:getLookupAction(C,com.intellij.codeInsight.lookup.impl.LookupImpl):com.intellij.codeInsight.lookup.CharFilter$Result
a:com.intellij.codeInsight.lookup.impl.actions.ChooseItemAction
- com.intellij.openapi.editor.actionSystem.EditorAction
- com.intellij.codeInsight.hint.HintManagerImpl$ActionToIgnore
- com.intellij.openapi.editor.actionSystem.EditorAction
- com.intellij.openapi.editor.actionSystem.LatencyAwareEditorAction
- <init>(com.intellij.codeInsight.lookup.impl.actions.ChooseItemAction$Handler):V
- s:hasTemplatePrefix(com.intellij.codeInsight.lookup.impl.LookupImpl,C):Z
@@ -1,19 +1,26 @@
// 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.completion.actions;
import com.intellij.codeInsight.completion.CompletionType;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.remoting.ActionRemoteBehavior;
import com.intellij.openapi.actionSystem.remoting.ActionRemoteBehaviorSpecification;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@ApiStatus.Internal
public final class ClassNameCompletionAction extends BaseCodeCompletionAction{
public final class ClassNameCompletionAction extends BaseCodeCompletionAction implements ActionRemoteBehaviorSpecification {
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
invokeCompletion(e, CompletionType.BASIC, 2);
}
@Override
@ApiStatus.Internal
public @Nullable ActionRemoteBehavior getBehavior() {
return CodeCompletionAction.getCompletionBehavior();
}
}
@@ -5,12 +5,33 @@ package com.intellij.codeInsight.completion.actions;
import com.intellij.codeInsight.completion.CompletionType;
import com.intellij.ide.lightEdit.LightEditCompatible;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.remoting.ActionRemoteBehavior;
import com.intellij.openapi.actionSystem.remoting.ActionRemoteBehaviorSpecification;
import com.intellij.openapi.util.registry.Registry;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class CodeCompletionAction extends BaseCodeCompletionAction implements LightEditCompatible {
public class CodeCompletionAction extends BaseCodeCompletionAction implements LightEditCompatible, ActionRemoteBehaviorSpecification {
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
invokeCompletion(e, CompletionType.BASIC, 1);
}
@Override
@ApiStatus.Internal
public final @Nullable ActionRemoteBehavior getBehavior() {
return getCompletionBehavior();
}
@ApiStatus.Internal
public static @Nullable ActionRemoteBehavior getCompletionBehavior() {
if (Registry.is("remdev.completion.on.frontend")) {
return ActionRemoteBehavior.FrontendOnly;
}
else {
return null;
}
}
}
@@ -1,19 +1,26 @@
// 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.completion.actions;
import com.intellij.codeInsight.completion.CompletionType;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.remoting.ActionRemoteBehavior;
import com.intellij.openapi.actionSystem.remoting.ActionRemoteBehaviorSpecification;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@ApiStatus.Internal
public final class SmartCodeCompletionAction extends BaseCodeCompletionAction{
public final class SmartCodeCompletionAction extends BaseCodeCompletionAction implements ActionRemoteBehaviorSpecification {
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
invokeCompletion(e, CompletionType.SMART, 1);
}
@Override
@ApiStatus.Internal
public @Nullable ActionRemoteBehavior getBehavior() {
return CodeCompletionAction.getCompletionBehavior();
}
}
@@ -1,9 +1,10 @@
// 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.lookup.impl.actions;
import com.intellij.codeInsight.completion.CompletionProcess;
import com.intellij.codeInsight.completion.CompletionService;
import com.intellij.codeInsight.completion.actions.CodeCompletionAction;
import com.intellij.codeInsight.hint.HintManagerImpl;
import com.intellij.codeInsight.lookup.Lookup;
import com.intellij.codeInsight.lookup.LookupFocusDegree;
@@ -13,6 +14,8 @@ import com.intellij.codeInsight.template.TemplateActionContext;
import com.intellij.codeInsight.template.impl.*;
import com.intellij.codeInsight.template.impl.editorActions.ExpandLiveTemplateCustomAction;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.actionSystem.remoting.ActionRemoteBehavior;
import com.intellij.openapi.actionSystem.remoting.ActionRemoteBehaviorSpecification;
import com.intellij.openapi.editor.Caret;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.editor.actionSystem.EditorAction;
@@ -21,16 +24,25 @@ import com.intellij.openapi.editor.actionSystem.LatencyAwareEditorAction;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiFile;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;
public abstract class ChooseItemAction extends EditorAction implements HintManagerImpl.ActionToIgnore, LatencyAwareEditorAction {
public abstract class ChooseItemAction extends EditorAction implements HintManagerImpl.ActionToIgnore,
LatencyAwareEditorAction,
ActionRemoteBehaviorSpecification {
public ChooseItemAction(Handler handler) {
super(handler);
}
@Override
@ApiStatus.Internal
public final @Nullable ActionRemoteBehavior getBehavior() {
return CodeCompletionAction.getCompletionBehavior();
}
public static class Handler extends EditorActionHandler {
final boolean focusedOnly;
final char finishingChar;
@@ -901,6 +901,12 @@
id="EditorDeleteLine.checkHandler"
/>
<registryKey key="remdev.completion.on.frontend"
defaultValue="false"
description="Enables frontend completion support"
restartRequired="true"
/>
<typedHandler implementation="com.intellij.codeInsight.inline.completion.listeners.typing.InlineCompletionTypedHandlerDelegate"/>
<registryKey key="editor.action.caretMovement.UpDownIgnoreSelectionBoundaries" defaultValue="false"