mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 06:50:54 +07:00
IJPL-164292 vsc marker: Add separate EditorActionHandler to close Marker Popup simultaneously with the intention bulb
IJ-MR-147690 GitOrigin-RevId: 8a5f2de379efc13a98f2403efea3d19613bb1854
This commit is contained in:
committed by
intellij-monorepo-bot
parent
97d32070e4
commit
d8323df36f
@@ -4,6 +4,11 @@
|
||||
<diff.DiffTool implementation="com.intellij.diff.tools.combined.CombinedUnifiedDiffTool"/>
|
||||
|
||||
<writingAccessProvider implementation="com.intellij.diff.DiffLightVirtualFileWritingAccessProvider"/>
|
||||
|
||||
<editorActionHandler action="EditorEscape"
|
||||
implementationClass="com.intellij.openapi.vcs.ex.LineStatusMakerEscEditorHandler"
|
||||
id="LineStatusTrackerMarkerPopup"
|
||||
order="before hide-hints"/>
|
||||
</extensions>
|
||||
|
||||
<applicationListeners>
|
||||
|
||||
@@ -4,11 +4,14 @@ package com.intellij.openapi.vcs.ex
|
||||
import com.intellij.codeInsight.hint.HintManager
|
||||
import com.intellij.codeInsight.hint.HintManagerImpl
|
||||
import com.intellij.openapi.Disposable
|
||||
import com.intellij.openapi.actionSystem.DataContext
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
import com.intellij.openapi.components.Service
|
||||
import com.intellij.openapi.editor.Caret
|
||||
import com.intellij.openapi.editor.Document
|
||||
import com.intellij.openapi.editor.Editor
|
||||
import com.intellij.openapi.editor.LogicalPosition
|
||||
import com.intellij.openapi.editor.actionSystem.EditorActionHandler
|
||||
import com.intellij.openapi.editor.event.*
|
||||
import com.intellij.openapi.fileEditor.FileEditorManagerEvent
|
||||
import com.intellij.openapi.fileEditor.FileEditorManagerListener
|
||||
@@ -63,6 +66,10 @@ internal class LineStatusMarkerPopupService {
|
||||
}
|
||||
}
|
||||
|
||||
internal fun hidePopup() {
|
||||
lastKnownHint?.hide()
|
||||
}
|
||||
|
||||
private fun beforeShowNewHint(newHint: LightweightHint) {
|
||||
if (lastKnownHint != null) {
|
||||
lastKnownHint!!.hide()
|
||||
@@ -179,3 +186,14 @@ internal class LineStatusMarkerPopupService {
|
||||
.getService<LineStatusMarkerPopupService>(LineStatusMarkerPopupService::class.java)
|
||||
}
|
||||
}
|
||||
|
||||
private class LineStatusMakerEscEditorHandler(private val delegate: EditorActionHandler) : EditorActionHandler() {
|
||||
override fun isEnabledForCaret(editor: Editor, caret: Caret, dataContext: DataContext?): Boolean {
|
||||
return delegate.isEnabled(editor, caret, dataContext)
|
||||
}
|
||||
|
||||
override fun doExecute(editor: Editor, caret: Caret?, dataContext: DataContext?) {
|
||||
LineStatusMarkerPopupService.instance.hidePopup()
|
||||
delegate.execute(editor, caret, dataContext)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user