From 3548d25095a3a43102d87509f1c8dbd96958d078 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Thu, 17 Jan 2019 16:59:40 +0300 Subject: [PATCH] Introduce wrapper for EditorFactoryListener to warn about compatibility issues --- .idea/inspectionProfiles/idea_default.xml | 1 + .../idea/completion/LookupCancelWatcher.kt | 9 ++----- .../EditorFactoryListenerWrapper.java.182 | 25 +++++++++++++++++++ .../compat/EditorFactoryListenerWrapper.kt | 14 +++++++++++ .../EditorFactoryListenerWrapper.kt.182 | 0 5 files changed, 42 insertions(+), 7 deletions(-) create mode 100644 idea/src/org/jetbrains/kotlin/idea/util/compat/EditorFactoryListenerWrapper.java.182 create mode 100644 idea/src/org/jetbrains/kotlin/idea/util/compat/EditorFactoryListenerWrapper.kt create mode 100644 idea/src/org/jetbrains/kotlin/idea/util/compat/EditorFactoryListenerWrapper.kt.182 diff --git a/.idea/inspectionProfiles/idea_default.xml b/.idea/inspectionProfiles/idea_default.xml index b6352fcebe9..c76db8aa8e3 100644 --- a/.idea/inspectionProfiles/idea_default.xml +++ b/.idea/inspectionProfiles/idea_default.xml @@ -116,6 +116,7 @@ + diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/LookupCancelWatcher.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/LookupCancelWatcher.kt index b1dd41fa37e..87fe3c2f914 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/LookupCancelWatcher.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/LookupCancelWatcher.kt @@ -28,9 +28,9 @@ import com.intellij.openapi.editor.RangeMarker import com.intellij.openapi.editor.event.CaretEvent import com.intellij.openapi.editor.event.CaretListener import com.intellij.openapi.editor.event.EditorFactoryEvent -import com.intellij.openapi.editor.event.EditorFactoryListener import com.intellij.openapi.project.Project import com.intellij.openapi.util.Key +import org.jetbrains.kotlin.idea.util.compat.EditorFactoryListenerWrapper class LookupCancelWatcher(val project: Project) : ProjectComponent { private class Reminiscence(editor: Editor, offset: Int) { @@ -105,17 +105,12 @@ class LookupCancelWatcher(val project: Project) : ProjectComponent { override fun initComponent() { EditorFactory.getInstance().addEditorFactoryListener( - object : EditorFactoryListener { + object : EditorFactoryListenerWrapper { override fun editorReleased(event: EditorFactoryEvent) { if (lastReminiscence?.editor == event.editor) { lastReminiscence!!.dispose() } } - - override fun editorCreated(event: EditorFactoryEvent) { - // BUNCH: 182 Has default implementation since 183 - // Do nothing - } }, project ) diff --git a/idea/src/org/jetbrains/kotlin/idea/util/compat/EditorFactoryListenerWrapper.java.182 b/idea/src/org/jetbrains/kotlin/idea/util/compat/EditorFactoryListenerWrapper.java.182 new file mode 100644 index 00000000000..f5be5d7754e --- /dev/null +++ b/idea/src/org/jetbrains/kotlin/idea/util/compat/EditorFactoryListenerWrapper.java.182 @@ -0,0 +1,25 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.idea.util.compat; + +import com.intellij.openapi.editor.event.EditorFactoryEvent; +import com.intellij.openapi.editor.event.EditorFactoryListener; +import org.jetbrains.annotations.NotNull; + +// Default implementation for interface methods were added in 183. +// BUNCH: 182 +@SuppressWarnings("IncompatibleAPI") +public interface EditorFactoryListenerWrapper extends EditorFactoryListener { + @Override + default void editorCreated(@NotNull EditorFactoryEvent event) { + } + + @Override + default void editorReleased(@NotNull EditorFactoryEvent event) { + } +} + + diff --git a/idea/src/org/jetbrains/kotlin/idea/util/compat/EditorFactoryListenerWrapper.kt b/idea/src/org/jetbrains/kotlin/idea/util/compat/EditorFactoryListenerWrapper.kt new file mode 100644 index 00000000000..cacc1954463 --- /dev/null +++ b/idea/src/org/jetbrains/kotlin/idea/util/compat/EditorFactoryListenerWrapper.kt @@ -0,0 +1,14 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +@file:Suppress("IncompatibleAPI") + +package org.jetbrains.kotlin.idea.util.compat + +import com.intellij.openapi.editor.event.EditorFactoryListener + +// Default implementation for interface methods were added in 183. +// BUNCH: 182 +typealias EditorFactoryListenerWrapper = EditorFactoryListener diff --git a/idea/src/org/jetbrains/kotlin/idea/util/compat/EditorFactoryListenerWrapper.kt.182 b/idea/src/org/jetbrains/kotlin/idea/util/compat/EditorFactoryListenerWrapper.kt.182 new file mode 100644 index 00000000000..e69de29bb2d