[inline-completion] ML-3566: show 'no suggestions' tooltip when there is no inline completion suggestions for direct call

GitOrigin-RevId: 4b0e3306765a02c252bbe1e7cb74ec4ac711011a
This commit is contained in:
Kirill.Karnaukhov
2024-06-26 15:19:22 +02:00
committed by intellij-monorepo-bot
parent 49aae6f4f4
commit beed64f67a
2 changed files with 28 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.codeInsight.inline.completion
import com.intellij.codeInsight.hint.HintManager
import com.intellij.codeInsight.inline.completion.logs.InlineCompletionUsageTracker
import com.intellij.codeInsight.inline.completion.session.InlineCompletionSession
import com.intellij.lang.LangBundle
import com.intellij.openapi.editor.Editor
private class InlineCompletionNoSuggestionsListener(private val editor: Editor) : InlineCompletionEventAdapter {
override fun onHide(event: InlineCompletionEventType.Hide) {
if (event.finishType == InlineCompletionUsageTracker.ShownEvents.FinishType.EMPTY) {
val session = InlineCompletionSession.getOrNull(editor)
if (session != null && session.request.event is InlineCompletionEvent.DirectCall) {
HintManager.getInstance().showInformationHint(editor, LangBundle.message("completion.no.suggestions"), HintManager.ABOVE)
}
}
}
}
private class InlineCompletionNoSuggestionListenerInstaller : InlineCompletionInstallListener {
override fun handlerInstalled(editor: Editor, handler: InlineCompletionHandler) {
handler.addEventListener(InlineCompletionNoSuggestionsListener(editor))
}
}

View File

@@ -1778,6 +1778,8 @@
topic="com.intellij.codeInsight.daemon.DaemonCodeAnalyzer$DaemonListener"/>
<listener class="com.intellij.codeInsight.inline.completion.InlineCompletionLookupManagerListener"
topic="com.intellij.codeInsight.lookup.LookupManagerListener"/>
<listener class="com.intellij.codeInsight.inline.completion.InlineCompletionNoSuggestionListenerInstaller"
topic="com.intellij.codeInsight.inline.completion.InlineCompletionInstallListener"/>
<listener class="com.intellij.codeInsight.inline.completion.TabEnterUsageDetector"
topic="com.intellij.codeInsight.lookup.LookupManagerListener"/>
<listener class="com.intellij.lang.documentation.ide.impl.DocumentationAutoPopupListener"