diff --git a/plugins/terminal/resources/META-INF/terminal.xml b/plugins/terminal/resources/META-INF/terminal.xml index ead2b99092aa..c1709ef1b05a 100644 --- a/plugins/terminal/resources/META-INF/terminal.xml +++ b/plugins/terminal/resources/META-INF/terminal.xml @@ -35,6 +35,8 @@ description="Whether to show the GotIt tooltip with a proposal to try the New Terminal"/> + diff --git a/plugins/terminal/src/org/jetbrains/plugins/terminal/LocalBlockTerminalRunner.kt b/plugins/terminal/src/org/jetbrains/plugins/terminal/LocalBlockTerminalRunner.kt index d1764160b005..8afd691b4005 100644 --- a/plugins/terminal/src/org/jetbrains/plugins/terminal/LocalBlockTerminalRunner.kt +++ b/plugins/terminal/src/org/jetbrains/plugins/terminal/LocalBlockTerminalRunner.kt @@ -44,6 +44,7 @@ open class LocalBlockTerminalRunner(project: Project) : LocalTerminalDirectRunne const val BLOCK_TERMINAL_POWERSHELL_WIN11_REGISTRY: String = "terminal.new.ui.powershell.win11" const val BLOCK_TERMINAL_POWERSHELL_WIN10_REGISTRY: String = "terminal.new.ui.powershell.win10" const val BLOCK_TERMINAL_POWERSHELL_UNIX_REGISTRY: String = "terminal.new.ui.powershell.unix" + const val BLOCK_TERMINAL_AUTOCOMPLETION: String = "terminal.new.ui.autocompletion" private const val BLOCK_TERMINAL_SHOW_PROMOTION: String = "terminal.new.ui.show.promotion" } } diff --git a/plugins/terminal/src/org/jetbrains/plugins/terminal/block/completion/TerminalCommandSpecCompletionContributor.kt b/plugins/terminal/src/org/jetbrains/plugins/terminal/block/completion/TerminalCommandSpecCompletionContributor.kt index b8e825eb2004..1a49db44df09 100644 --- a/plugins/terminal/src/org/jetbrains/plugins/terminal/block/completion/TerminalCommandSpecCompletionContributor.kt +++ b/plugins/terminal/src/org/jetbrains/plugins/terminal/block/completion/TerminalCommandSpecCompletionContributor.kt @@ -8,6 +8,7 @@ import com.intellij.openapi.progress.runBlockingCancellable import com.intellij.openapi.project.DumbAware import com.intellij.openapi.project.Project import com.intellij.openapi.util.TextRange +import com.intellij.openapi.util.registry.Registry import com.intellij.openapi.util.text.StringUtil import com.intellij.platform.diagnostic.telemetry.Scope import com.intellij.platform.diagnostic.telemetry.TelemetryManager @@ -18,6 +19,7 @@ import com.intellij.terminal.completion.ShellDataGeneratorsExecutor import com.intellij.terminal.completion.ShellRuntimeContextProvider import com.intellij.terminal.completion.spec.ShellCompletionSuggestion import com.intellij.terminal.completion.spec.ShellSuggestionType +import org.jetbrains.plugins.terminal.LocalBlockTerminalRunner.Companion.BLOCK_TERMINAL_AUTOCOMPLETION import org.jetbrains.plugins.terminal.action.TerminalCommandCompletionAction import org.jetbrains.plugins.terminal.block.completion.TerminalCompletionUtil.findIconForSuggestion import org.jetbrains.plugins.terminal.block.completion.TerminalCompletionUtil.getNextSuggestionsString @@ -49,6 +51,11 @@ internal class TerminalCommandSpecCompletionContributor : CompletionContributor( return } + if (parameters.isAutoPopup && !Registry.`is`(BLOCK_TERMINAL_AUTOCOMPLETION)) { + result.stopHere() + return + } + if (parameters.editor.getUserData(TerminalCommandCompletionAction.SUPPRESS_COMPLETION) == true) { result.stopHere() return diff --git a/plugins/terminal/src/org/jetbrains/plugins/terminal/block/completion/powershell/PowerShellCompletionContributor.kt b/plugins/terminal/src/org/jetbrains/plugins/terminal/block/completion/powershell/PowerShellCompletionContributor.kt index bb24826c66a8..1b4abb2f3b2f 100644 --- a/plugins/terminal/src/org/jetbrains/plugins/terminal/block/completion/powershell/PowerShellCompletionContributor.kt +++ b/plugins/terminal/src/org/jetbrains/plugins/terminal/block/completion/powershell/PowerShellCompletionContributor.kt @@ -10,7 +10,9 @@ import com.intellij.openapi.diagnostic.logger import com.intellij.openapi.progress.runBlockingCancellable import com.intellij.openapi.project.DumbAware import com.intellij.openapi.util.TextRange +import com.intellij.openapi.util.registry.Registry import com.intellij.util.DocumentUtil +import org.jetbrains.plugins.terminal.LocalBlockTerminalRunner.Companion.BLOCK_TERMINAL_AUTOCOMPLETION import org.jetbrains.plugins.terminal.TerminalIcons import org.jetbrains.plugins.terminal.block.completion.spec.impl.ShellDataGeneratorsExecutorImpl import org.jetbrains.plugins.terminal.block.completion.spec.impl.ShellRuntimeContextProviderImpl @@ -33,6 +35,11 @@ internal class PowerShellCompletionContributor : CompletionContributor(), DumbAw return } + if (parameters.isAutoPopup && !Registry.`is`(BLOCK_TERMINAL_AUTOCOMPLETION)) { + result.stopHere() + return + } + // stop even if we can't suggest something to not execute contributors from the ShellScript plugin result.stopHere() if (session.shellIntegration.shellType != ShellType.POWERSHELL) {