[command-completion] KTIJ-33951

- introduce new service for settings

GitOrigin-RevId: fca2f40b56039f7f3426d4f952a9de1f53d36e99
This commit is contained in:
Mikhail Pyltsin
2025-05-20 14:23:20 +00:00
committed by intellij-monorepo-bot
parent 0c7bf36bcf
commit d615cf662c
3 changed files with 19 additions and 7 deletions
@@ -1,7 +1,7 @@
// Copyright 2000-2024 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;
import com.intellij.codeInsight.completion.command.configuration.ApplicationCommandCompletionService;
import com.intellij.codeInsight.completion.command.configuration.CommandCompletionSettingsService;
import com.intellij.codeInsight.completion.impl.CamelHumpMatcher;
import com.intellij.codeInsight.generation.*;
import com.intellij.codeInsight.lookup.LookupElement;
@@ -177,7 +177,7 @@ public final class JavaGenerateMemberCompletionContributor {
if (!baseMethod.isConstructor() && baseClass != null && addedSignatures.add(baseMethod.getSignature(substitutor))) {
result.addElement(
createOverridingLookupElement(implemented, baseMethod, baseClass, substitutor, generateDefaultMethods, parent, null));
if (GenerateEqualsHandler.hasNonStaticFields(parent) && !ApplicationCommandCompletionService.getInstance().commandCompletionEnabled()) {
if (GenerateEqualsHandler.hasNonStaticFields(parent) && !CommandCompletionSettingsService.getInstance().commandCompletionEnabled()) {
if (MethodUtils.isEquals(baseMethod) || MethodUtils.isHashCode(baseMethod)) {
result.addElement(
createOverridingLookupElement(implemented, baseMethod, baseClass, substitutor, generateDefaultMethods, parent, context -> {
@@ -5,7 +5,7 @@ import com.intellij.application.options.CodeStyle;
import com.intellij.codeInsight.AutoPopupController;
import com.intellij.codeInsight.completion.CompletionType;
import com.intellij.codeInsight.completion.JavaClassReferenceCompletionContributor;
import com.intellij.codeInsight.completion.command.configuration.ApplicationCommandCompletionService;
import com.intellij.codeInsight.completion.command.configuration.CommandCompletionSettingsService;
import com.intellij.java.syntax.parser.JavaKeywords;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
@@ -209,7 +209,7 @@ public final class JavaTypedHandler extends JavaTypedHandlerBase {
while (parent instanceof PsiJavaCodeReferenceElement || parent instanceof PsiTypeElement);
if (parent instanceof PsiParameterList list && PsiTreeUtil.isAncestor(list, lastElement, false) ||
(parent instanceof PsiParameter && !(parent instanceof PsiPatternVariable))) {
if (ApplicationCommandCompletionService.getInstance().commandCompletionEnabled() &&
if (CommandCompletionSettingsService.getInstance().commandCompletionEnabled() &&
parent instanceof PsiParameter parameter &&
lastElement instanceof PsiJavaToken javaToken &&
javaToken.textMatches(".") &&
@@ -17,8 +17,7 @@ import org.jetbrains.annotations.ApiStatus
internal class ApplicationCommandCompletionService : PersistentStateComponent<AppCommandCompletionSettings> {
companion object {
@JvmStatic
fun getInstance(): ApplicationCommandCompletionService = ApplicationManager.getApplication().getService(ApplicationCommandCompletionService::class.java)
internal fun getInstance(): ApplicationCommandCompletionService = ApplicationManager.getApplication().getService(ApplicationCommandCompletionService::class.java)
}
private var myState = AppCommandCompletionSettings()
@@ -34,6 +33,19 @@ internal class ApplicationCommandCompletionService : PersistentStateComponent<Ap
}
}
@ApiStatus.Internal
@Service(Service.Level.APP)
class CommandCompletionSettingsService {
companion object {
@JvmStatic
fun getInstance(): CommandCompletionSettingsService = ApplicationManager.getApplication().getService(CommandCompletionSettingsService::class.java)
}
fun commandCompletionEnabled(): Boolean {
return ApplicationCommandCompletionService.getInstance().commandCompletionEnabled()
}
}
@ApiStatus.Internal
internal class AppCommandCompletionSettings(
var showCounts: Int = 0,