mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 22:51:17 +07:00
[terminal] invalidate commandBlockHighlighterProvider on new extension available as well
(cherry picked from commit d64a5af1e80c32b0358471584f97186f15e3c273) IJ-CR-146871 GitOrigin-RevId: 5e9f743bc4f780d1a6f39d4e15da28518fe6a6a2
This commit is contained in:
committed by
intellij-monorepo-bot
parent
0c378f7061
commit
b8fe877ec9
@@ -2,9 +2,8 @@
|
||||
package org.jetbrains.plugins.terminal.block.output.highlighting
|
||||
|
||||
import com.intellij.openapi.Disposable
|
||||
import com.intellij.openapi.application.ModalityState
|
||||
import com.intellij.openapi.editor.event.DocumentEvent
|
||||
import com.intellij.openapi.extensions.ExtensionPointListener
|
||||
import com.intellij.openapi.extensions.PluginDescriptor
|
||||
import com.intellij.openapi.util.ClearableLazyValue
|
||||
import org.jetbrains.plugins.terminal.block.output.CommandBlock
|
||||
import org.jetbrains.plugins.terminal.block.output.TerminalOutputModel
|
||||
@@ -21,11 +20,12 @@ import org.jetbrains.plugins.terminal.block.ui.invokeLater
|
||||
* 2) at least two highlighters are applicable
|
||||
*/
|
||||
internal class CompositeTerminalTextHighlighter(
|
||||
private val terminalOutputModel: TerminalOutputModel,
|
||||
terminalOutputModel: TerminalOutputModel,
|
||||
terminalTextHighlighter: TerminalTextHighlighter,
|
||||
parentDisposable: Disposable,
|
||||
) : CompositeEditorHighlighter(terminalTextHighlighter) {
|
||||
|
||||
// should be accessed in EDT only
|
||||
private val terminalCommandBlockHighlighters: ClearableLazyValue<List<TerminalCommandBlockHighlighter>> = ClearableLazyValue.create {
|
||||
COMMAND_BLOCK_HIGHLIGHTER_PROVIDER_EP_NAME
|
||||
.extensionList
|
||||
@@ -38,11 +38,9 @@ internal class CompositeTerminalTextHighlighter(
|
||||
setCommandBlock(block)
|
||||
}
|
||||
})
|
||||
COMMAND_BLOCK_HIGHLIGHTER_PROVIDER_EP_NAME.addExtensionPointListener(object : ExtensionPointListener<TerminalCommandBlockHighlighterProvider> {
|
||||
override fun extensionRemoved(extension: TerminalCommandBlockHighlighterProvider, pluginDescriptor: PluginDescriptor) {
|
||||
invokeLater {
|
||||
terminalCommandBlockHighlighters.drop()
|
||||
}
|
||||
COMMAND_BLOCK_HIGHLIGHTER_PROVIDER_EP_NAME.addChangeListener(Runnable {
|
||||
invokeLater(modalityState = ModalityState.any()) {
|
||||
terminalCommandBlockHighlighters.drop()
|
||||
}
|
||||
}, parentDisposable)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user