diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/InspectionLens.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/InspectionLens.kt index a4e20c2..d9ac5db 100644 --- a/src/main/kotlin/com/chylex/intellij/inspectionlens/InspectionLens.kt +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/InspectionLens.kt @@ -1,15 +1,11 @@ package com.chylex.intellij.inspectionlens -import com.chylex.intellij.inspectionlens.editor.EditorLensManager -import com.chylex.intellij.inspectionlens.editor.LensMarkupModelListener -import com.intellij.openapi.Disposable +import com.chylex.intellij.inspectionlens.editor.EditorLensFeatures import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.components.service import com.intellij.openapi.fileEditor.FileEditorManager import com.intellij.openapi.fileEditor.TextEditor import com.intellij.openapi.project.ProjectManager -import com.intellij.openapi.rd.createLifetime -import com.intellij.openapi.rd.createNestedDisposable -import com.jetbrains.rd.util.lifetime.Lifetime /** * Handles installation and uninstallation of plugin features in editors. @@ -21,7 +17,7 @@ internal object InspectionLens { * Installs lenses into [editor]. */ fun install(editor: TextEditor) { - LensMarkupModelListener.register(editor.editor, createEditorDisposable(editor)) + EditorLensFeatures.install(editor.editor, service<InspectionLensPluginDisposableService>().intersect(editor)) } /** @@ -31,31 +27,20 @@ internal object InspectionLens { forEachOpenEditor(::install) } - /** - * Uninstalls lenses from all open editors. - */ - fun uninstall() { - forEachOpenEditor { - EditorLensManager.remove(it.editor) - } - } - /** * Refreshes lenses in all open editors. */ - fun refresh() { + private fun refresh() { forEachOpenEditor { - LensMarkupModelListener.refresh(it.editor) + EditorLensFeatures.refresh(it.editor) } } /** - * Creates a [Disposable] that will be disposed when either the [TextEditor] is disposed or the plugin is unloaded. + * Schedules a refresh of lenses in all open editors. */ - private fun createEditorDisposable(textEditor: TextEditor): Disposable { - val pluginLifetime = ApplicationManager.getApplication().getService(InspectionLensPluginDisposableService::class.java).createLifetime() - val editorLifetime = textEditor.createLifetime() - return Lifetime.intersect(pluginLifetime, editorLifetime).createNestedDisposable("InspectionLensIntersectedLifetime") + fun scheduleRefresh() { + Refresh.schedule() } /** @@ -70,4 +55,26 @@ internal object InspectionLens { } } } + + private object Refresh { + private var needsRefresh = false + + fun schedule() { + synchronized(this) { + if (!needsRefresh) { + needsRefresh = true + ApplicationManager.getApplication().invokeLater(this::run) + } + } + } + + private fun run() { + synchronized(this) { + if (needsRefresh) { + needsRefresh = false + refresh() + } + } + } + } } diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/InspectionLensPluginDisposableService.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/InspectionLensPluginDisposableService.kt index fdef29d..e29fb57 100644 --- a/src/main/kotlin/com/chylex/intellij/inspectionlens/InspectionLensPluginDisposableService.kt +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/InspectionLensPluginDisposableService.kt @@ -2,11 +2,21 @@ package com.chylex.intellij.inspectionlens import com.intellij.openapi.Disposable import com.intellij.openapi.components.Service +import com.intellij.openapi.rd.createLifetime +import com.intellij.openapi.rd.createNestedDisposable +import com.jetbrains.rd.util.lifetime.Lifetime /** * Gets automatically disposed when the plugin is unloaded. */ @Service class InspectionLensPluginDisposableService : Disposable { + /** + * Creates a [Disposable] that will be disposed when either plugin is unloaded, or the [other] [Disposable] is disposed. + */ + fun intersect(other: Disposable): Disposable { + return Lifetime.intersect(createLifetime(), other.createLifetime()).createNestedDisposable("InspectionLensIntersectedLifetime") + } + override fun dispose() {} } diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/InspectionLensPluginListener.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/InspectionLensPluginListener.kt index 9f29984..fe6cf6c 100644 --- a/src/main/kotlin/com/chylex/intellij/inspectionlens/InspectionLensPluginListener.kt +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/InspectionLensPluginListener.kt @@ -4,7 +4,7 @@ import com.intellij.ide.plugins.DynamicPluginListener import com.intellij.ide.plugins.IdeaPluginDescriptor /** - * Installs [InspectionLens] in open editors when the plugin is loaded, and uninstalls it when the plugin is unloaded. + * Installs [InspectionLens] in open editors when the plugin is loaded. */ class InspectionLensPluginListener : DynamicPluginListener { override fun pluginLoaded(pluginDescriptor: IdeaPluginDescriptor) { @@ -12,10 +12,4 @@ class InspectionLensPluginListener : DynamicPluginListener { InspectionLens.install() } } - - override fun beforePluginUnload(pluginDescriptor: IdeaPluginDescriptor, isUpdate: Boolean) { - if (pluginDescriptor.pluginId.idString == InspectionLens.PLUGIN_ID) { - InspectionLens.uninstall() - } - } } diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/InspectionLensRefresher.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/InspectionLensRefresher.kt deleted file mode 100644 index c9558bf..0000000 --- a/src/main/kotlin/com/chylex/intellij/inspectionlens/InspectionLensRefresher.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.chylex.intellij.inspectionlens - -import com.intellij.openapi.application.ApplicationManager - -object InspectionLensRefresher { - private var needsRefresh = false - - fun scheduleRefresh() { - synchronized(this) { - if (!needsRefresh) { - needsRefresh = true - ApplicationManager.getApplication().invokeLater(::refresh) - } - } - } - - private fun refresh() { - synchronized(this) { - if (needsRefresh) { - needsRefresh = false - InspectionLens.refresh() - } - } - } -} diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/compatibility/GrazieSupport.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/compatibility/GrazieSupport.kt index 425da33..5385542 100644 --- a/src/main/kotlin/com/chylex/intellij/inspectionlens/compatibility/GrazieSupport.kt +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/compatibility/GrazieSupport.kt @@ -1,6 +1,6 @@ package com.chylex.intellij.inspectionlens.compatibility -import com.chylex.intellij.inspectionlens.editor.LensSeverity +import com.chylex.intellij.inspectionlens.editor.lens.LensSeverity import com.intellij.grazie.ide.TextProblemSeverities import com.intellij.openapi.project.Project import com.intellij.openapi.startup.ProjectActivity diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/compatibility/SpellCheckerSupport.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/compatibility/SpellCheckerSupport.kt index 9d5fc6c..6887e81 100644 --- a/src/main/kotlin/com/chylex/intellij/inspectionlens/compatibility/SpellCheckerSupport.kt +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/compatibility/SpellCheckerSupport.kt @@ -1,12 +1,12 @@ package com.chylex.intellij.inspectionlens.compatibility -import com.chylex.intellij.inspectionlens.editor.LensSeverity +import com.chylex.intellij.inspectionlens.editor.lens.LensSeverity import com.intellij.lang.annotation.HighlightSeverity import com.intellij.openapi.diagnostic.logger import com.intellij.profile.codeInspection.InspectionProfileManager import com.intellij.spellchecker.SpellCheckerSeveritiesProvider -object SpellCheckerSupport { +internal object SpellCheckerSupport { private val log = logger<SpellCheckerSupport>() fun load() { diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/EditorLensFeatures.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/EditorLensFeatures.kt new file mode 100644 index 0000000..09b2c65 --- /dev/null +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/EditorLensFeatures.kt @@ -0,0 +1,51 @@ +package com.chylex.intellij.inspectionlens.editor + +import com.intellij.openapi.Disposable +import com.intellij.openapi.editor.Editor +import com.intellij.openapi.editor.ex.MarkupModelEx +import com.intellij.openapi.editor.impl.DocumentMarkupModel +import com.intellij.openapi.util.Disposer +import com.intellij.openapi.util.Key + +/** + * Manages Inspection Lens features for a single [Editor]. + */ +internal class EditorLensFeatures private constructor( + editor: Editor, + private val markupModel: MarkupModelEx, + disposable: Disposable +) { + private val lensManager = EditorLensManager(editor) + private val lensManagerDispatcher = EditorLensManagerDispatcher(lensManager) + private val markupModelListener = LensMarkupModelListener(lensManagerDispatcher) + + init { + markupModel.addMarkupModelListener(disposable, markupModelListener) + markupModelListener.showAllValid(markupModel.allHighlighters) + } + + private fun refresh() { + markupModelListener.hideAll() + markupModelListener.showAllValid(markupModel.allHighlighters) + } + + companion object { + private val EDITOR_KEY = Key<EditorLensFeatures>(EditorLensFeatures::class.java.name) + + fun install(editor: Editor, disposable: Disposable) { + if (editor.getUserData(EDITOR_KEY) != null) { + return + } + + val markupModel = DocumentMarkupModel.forDocument(editor.document, editor.project, false) as? MarkupModelEx ?: return + val features = EditorLensFeatures(editor, markupModel, disposable) + + editor.putUserData(EDITOR_KEY, features) + Disposer.register(disposable) { editor.putUserData(EDITOR_KEY, null) } + } + + fun refresh(editor: Editor) { + editor.getUserData(EDITOR_KEY)?.refresh() + } + } +} diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/EditorLensManager.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/EditorLensManager.kt index bddce15..df7e645 100644 --- a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/EditorLensManager.kt +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/EditorLensManager.kt @@ -1,32 +1,16 @@ package com.chylex.intellij.inspectionlens.editor +import com.chylex.intellij.inspectionlens.editor.lens.EditorLens import com.chylex.intellij.inspectionlens.settings.LensSettingsState import com.intellij.openapi.components.service import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.markup.RangeHighlighter -import com.intellij.openapi.util.Key import java.util.IdentityHashMap /** * Manages visible inspection lenses for an [Editor]. */ -class EditorLensManager private constructor(private val editor: Editor) { - companion object { - private val EDITOR_KEY = Key<EditorLensManager>(EditorLensManager::class.java.name) - - fun getOrCreate(editor: Editor): EditorLensManager { - return editor.getUserData(EDITOR_KEY) ?: EditorLensManager(editor).also { editor.putUserData(EDITOR_KEY, it) } - } - - fun remove(editor: Editor) { - val manager = editor.getUserData(EDITOR_KEY) - if (manager != null) { - manager.hideAll() - editor.putUserData(EDITOR_KEY, null) - } - } - } - +internal class EditorLensManager(private val editor: Editor) { private val lenses = IdentityHashMap<RangeHighlighter, EditorLens>() private val settings = service<LensSettingsState>() diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/EditorLensManagerDispatcher.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/EditorLensManagerDispatcher.kt index f189ceb..21f8411 100644 --- a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/EditorLensManagerDispatcher.kt +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/EditorLensManagerDispatcher.kt @@ -3,7 +3,7 @@ package com.chylex.intellij.inspectionlens.editor import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.editor.markup.RangeHighlighter -class EditorLensManagerDispatcher(private val lensManager: EditorLensManager) { +internal class EditorLensManagerDispatcher(private val lensManager: EditorLensManager) { private var queuedItems = mutableListOf<EditorLensManager.Command>() private var isEnqueued = false diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensMarkupModelListener.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensMarkupModelListener.kt index d2c5573..de9a6fe 100644 --- a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensMarkupModelListener.kt +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensMarkupModelListener.kt @@ -2,23 +2,16 @@ package com.chylex.intellij.inspectionlens.editor import com.chylex.intellij.inspectionlens.settings.LensSettingsState import com.intellij.codeInsight.daemon.impl.HighlightInfo -import com.intellij.openapi.Disposable import com.intellij.openapi.components.service -import com.intellij.openapi.editor.Editor -import com.intellij.openapi.editor.ex.MarkupModelEx import com.intellij.openapi.editor.ex.RangeHighlighterEx -import com.intellij.openapi.editor.impl.DocumentMarkupModel import com.intellij.openapi.editor.impl.event.MarkupModelListener import com.intellij.openapi.editor.markup.RangeHighlighter -import com.intellij.openapi.util.Disposer -import com.intellij.openapi.util.Key /** * Listens for inspection highlights and reports them to [EditorLensManager]. */ -internal class LensMarkupModelListener private constructor(editor: Editor) : MarkupModelListener { +internal class LensMarkupModelListener(private val lensManagerDispatcher: EditorLensManagerDispatcher) : MarkupModelListener { private val settings = service<LensSettingsState>() - private val lensManagerDispatcher = EditorLensManagerDispatcher(EditorLensManager.getOrCreate(editor)) override fun afterAdded(highlighter: RangeHighlighterEx) { showIfValid(highlighter) @@ -46,11 +39,11 @@ internal class LensMarkupModelListener private constructor(editor: Editor) : Mar } } - private fun showAllValid(highlighters: Array<RangeHighlighter>) { + fun showAllValid(highlighters: Array<RangeHighlighter>) { highlighters.forEach(::showIfValid) } - private fun hideAll() { + fun hideAll() { lensManagerDispatcher.hideAll() } @@ -65,49 +58,12 @@ internal class LensMarkupModelListener private constructor(editor: Editor) : Mar } } - companion object { - private val EDITOR_KEY = Key<LensMarkupModelListener>(LensMarkupModelListener::class.java.name) - - private inline fun processHighlighterWithInfo(highlighterWithInfo: HighlighterWithInfo, actionForImmediate: (HighlighterWithInfo) -> Unit, actionForAsync: (HighlighterWithInfo.Async) -> Unit) { - if (highlighterWithInfo is HighlighterWithInfo.Async) { - actionForAsync(highlighterWithInfo) - } - else if (highlighterWithInfo.hasDescription) { - actionForImmediate(highlighterWithInfo) - } + private inline fun processHighlighterWithInfo(highlighterWithInfo: HighlighterWithInfo, actionForImmediate: (HighlighterWithInfo) -> Unit, actionForAsync: (HighlighterWithInfo.Async) -> Unit) { + if (highlighterWithInfo is HighlighterWithInfo.Async) { + actionForAsync(highlighterWithInfo) } - - private fun getMarkupModel(editor: Editor): MarkupModelEx? { - return DocumentMarkupModel.forDocument(editor.document, editor.project, false) as? MarkupModelEx - } - - /** - * Attaches a new [LensMarkupModelListener] to the [Editor], and reports all existing inspection highlights to [EditorLensManager]. - */ - fun register(editor: Editor, disposable: Disposable) { - if (editor.getUserData(EDITOR_KEY) != null) { - return - } - - val markupModel = getMarkupModel(editor) ?: return - val listener = LensMarkupModelListener(editor) - - editor.putUserData(EDITOR_KEY, listener) - Disposer.register(disposable) { editor.putUserData(EDITOR_KEY, null) } - - markupModel.addMarkupModelListener(disposable, listener) - listener.showAllValid(markupModel.allHighlighters) - } - - /** - * Recreates all inspection highlights in the [Editor]. - */ - fun refresh(editor: Editor) { - val listener = editor.getUserData(EDITOR_KEY) ?: return - val markupModel = getMarkupModel(editor) ?: return - - listener.hideAll() - listener.showAllValid(markupModel.allHighlighters) + else if (highlighterWithInfo.hasDescription) { + actionForImmediate(highlighterWithInfo) } } } diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/EditorLens.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/EditorLens.kt similarity index 95% rename from src/main/kotlin/com/chylex/intellij/inspectionlens/editor/EditorLens.kt rename to src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/EditorLens.kt index e05bacc..da1adf4 100644 --- a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/EditorLens.kt +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/EditorLens.kt @@ -1,4 +1,4 @@ -package com.chylex.intellij.inspectionlens.editor +package com.chylex.intellij.inspectionlens.editor.lens import com.chylex.intellij.inspectionlens.settings.LensSettingsState import com.intellij.codeInsight.daemon.impl.HighlightInfo diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/EditorLensInlay.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/EditorLensInlay.kt similarity index 98% rename from src/main/kotlin/com/chylex/intellij/inspectionlens/editor/EditorLensInlay.kt rename to src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/EditorLensInlay.kt index 5c31c38..0e1d972 100644 --- a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/EditorLensInlay.kt +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/EditorLensInlay.kt @@ -1,4 +1,4 @@ -package com.chylex.intellij.inspectionlens.editor +package com.chylex.intellij.inspectionlens.editor.lens import com.chylex.intellij.inspectionlens.settings.LensSettingsState import com.intellij.codeInsight.daemon.impl.HighlightInfo diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/EditorLensLineBackground.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/EditorLensLineBackground.kt similarity index 96% rename from src/main/kotlin/com/chylex/intellij/inspectionlens/editor/EditorLensLineBackground.kt rename to src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/EditorLensLineBackground.kt index 4f0cb71..4f10a2a 100644 --- a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/EditorLensLineBackground.kt +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/EditorLensLineBackground.kt @@ -1,4 +1,4 @@ -package com.chylex.intellij.inspectionlens.editor +package com.chylex.intellij.inspectionlens.editor.lens import com.intellij.codeInsight.daemon.impl.HighlightInfo import com.intellij.openapi.editor.Editor diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensRenderer.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/LensRenderer.kt similarity index 97% rename from src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensRenderer.kt rename to src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/LensRenderer.kt index 114f9c5..97e8467 100644 --- a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensRenderer.kt +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/LensRenderer.kt @@ -1,4 +1,4 @@ -package com.chylex.intellij.inspectionlens.editor +package com.chylex.intellij.inspectionlens.editor.lens import com.chylex.intellij.inspectionlens.settings.LensSettingsState import com.intellij.codeInsight.daemon.impl.HighlightInfo diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensSeverity.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/LensSeverity.kt similarity index 94% rename from src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensSeverity.kt rename to src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/LensSeverity.kt index 6b581f3..653c2c5 100644 --- a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensSeverity.kt +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/LensSeverity.kt @@ -1,6 +1,6 @@ -package com.chylex.intellij.inspectionlens.editor +package com.chylex.intellij.inspectionlens.editor.lens -import com.chylex.intellij.inspectionlens.InspectionLensRefresher +import com.chylex.intellij.inspectionlens.InspectionLens import com.chylex.intellij.inspectionlens.compatibility.SpellCheckerSupport import com.intellij.lang.annotation.HighlightSeverity import com.intellij.ui.ColorUtil @@ -54,7 +54,7 @@ enum class LensSeverity(baseColor: Color, lightThemeDarkening: Int, darkThemeBri */ internal fun registerMapping(severity: HighlightSeverity, lensSeverity: LensSeverity) { if (mapping.put(severity, lensSeverity) != lensSeverity) { - InspectionLensRefresher.scheduleRefresh() + InspectionLens.scheduleRefresh() } } diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensSeverityFilter.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/LensSeverityFilter.kt similarity index 95% rename from src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensSeverityFilter.kt rename to src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/LensSeverityFilter.kt index ab72705..6285740 100644 --- a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensSeverityFilter.kt +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/LensSeverityFilter.kt @@ -1,4 +1,4 @@ -package com.chylex.intellij.inspectionlens.editor +package com.chylex.intellij.inspectionlens.editor.lens import com.intellij.codeInsight.daemon.impl.SeverityRegistrar import com.intellij.lang.annotation.HighlightSeverity diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensSeverityTextAttributes.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/LensSeverityTextAttributes.kt similarity index 90% rename from src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensSeverityTextAttributes.kt rename to src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/LensSeverityTextAttributes.kt index 7eaf9c8..4e0037f 100644 --- a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensSeverityTextAttributes.kt +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/lens/LensSeverityTextAttributes.kt @@ -1,4 +1,4 @@ -package com.chylex.intellij.inspectionlens.editor +package com.chylex.intellij.inspectionlens.editor.lens import com.intellij.openapi.editor.markup.UnmodifiableTextAttributes import com.intellij.ui.JBColor diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/settings/LensApplicationConfigurable.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/settings/LensApplicationConfigurable.kt index 5c9760f..d15b64a 100644 --- a/src/main/kotlin/com/chylex/intellij/inspectionlens/settings/LensApplicationConfigurable.kt +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/settings/LensApplicationConfigurable.kt @@ -1,6 +1,6 @@ package com.chylex.intellij.inspectionlens.settings -import com.chylex.intellij.inspectionlens.editor.LensSeverityFilter +import com.chylex.intellij.inspectionlens.editor.lens.LensSeverityFilter import com.intellij.codeInsight.daemon.impl.SeverityRegistrar import com.intellij.lang.annotation.HighlightSeverity import com.intellij.openapi.components.service diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/settings/LensSettingsState.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/settings/LensSettingsState.kt index 6a625ac..c375e15 100644 --- a/src/main/kotlin/com/chylex/intellij/inspectionlens/settings/LensSettingsState.kt +++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/settings/LensSettingsState.kt @@ -1,7 +1,7 @@ package com.chylex.intellij.inspectionlens.settings -import com.chylex.intellij.inspectionlens.InspectionLensRefresher -import com.chylex.intellij.inspectionlens.editor.LensSeverityFilter +import com.chylex.intellij.inspectionlens.InspectionLens +import com.chylex.intellij.inspectionlens.editor.lens.LensSeverityFilter import com.intellij.openapi.components.BaseState import com.intellij.openapi.components.SettingsCategory import com.intellij.openapi.components.SimplePersistentStateComponent @@ -38,7 +38,7 @@ class LensSettingsState : SimplePersistentStateComponent<LensSettingsState.State fun update() { severityFilter = createSeverityFilter() - InspectionLensRefresher.scheduleRefresh() + InspectionLens.scheduleRefresh() } private fun createSeverityFilter(): LensSeverityFilter { diff --git a/src/test/kotlin/com/chylex/intellij/inspectionlens/EditorLensTest.kt b/src/test/kotlin/com/chylex/intellij/inspectionlens/editor/lens/EditorLensTest.kt similarity index 91% rename from src/test/kotlin/com/chylex/intellij/inspectionlens/EditorLensTest.kt rename to src/test/kotlin/com/chylex/intellij/inspectionlens/editor/lens/EditorLensTest.kt index dbfc6e0..c8e16d9 100644 --- a/src/test/kotlin/com/chylex/intellij/inspectionlens/EditorLensTest.kt +++ b/src/test/kotlin/com/chylex/intellij/inspectionlens/editor/lens/EditorLensTest.kt @@ -1,6 +1,5 @@ -package com.chylex.intellij.inspectionlens +package com.chylex.intellij.inspectionlens.editor.lens -import com.chylex.intellij.inspectionlens.editor.EditorLensInlay import com.intellij.lang.annotation.HighlightSeverity import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Nested @@ -48,7 +47,7 @@ class EditorLensTest { } /** - * If any of these change, re-evaluate [EditorLensInlay.MAXIMUM_SEVERITY] and the priority calculations. + * If any of these changes, re-evaluate [EditorLensInlay.MAXIMUM_SEVERITY] and the priority calculations. */ @Nested inner class IdeaHighlightSeverityAssumptions {