From 694d9ebb84168623dc87b5c5df3633069fa60b7e Mon Sep 17 00:00:00 2001 From: yangjiaqi Date: Fri, 25 Apr 2025 11:31:46 +0800 Subject: [PATCH 1/3] =?UTF-8?q?chore:=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=AF=91=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CodeLocatorPlugin/build.gradle | 19 ++++++++++++----- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../codelocator/dialog/FixJumpErrorDialog.kt | 3 +-- .../codelocator/dialog/SearchColorDialog.kt | 5 ++--- .../codelocator/dialog/SendSchemaDialog.kt | 3 --- .../codelocator/dialog/ShowConfigDialog.kt | 5 ++--- .../dialog/ShowDownloadSourceDialog.kt | 5 ++--- .../codelocator/dialog/ShowHistoryDialog.kt | 3 +-- .../codelocator/dialog/ShowNewsDialog.kt | 3 +-- .../codelocator/dialog/ShowTraceDialog.kt | 3 +-- ...LocatorApplicationInitializedListener.java | 21 ++++++++++++------- .../listener/CodeLocatorStartupActivity.java | 2 +- .../codelocator/panels/ScaleImagePanel.java | 2 +- .../panels/TableColumnAdjuster.java | 2 +- 14 files changed, 42 insertions(+), 36 deletions(-) diff --git a/CodeLocatorPlugin/build.gradle b/CodeLocatorPlugin/build.gradle index c11425d..9b9f227 100644 --- a/CodeLocatorPlugin/build.gradle +++ b/CodeLocatorPlugin/build.gradle @@ -1,7 +1,7 @@ plugins { id 'java' - id 'org.jetbrains.intellij' version '0.6.1' - id 'org.jetbrains.kotlin.jvm' version '1.3.72' + id 'org.jetbrains.intellij' version '1.17.4' + id 'org.jetbrains.kotlin.jvm' version '1.9.21' } group 'com.bytedance.tools' @@ -49,9 +49,10 @@ dependencies { } intellij { - updateSinceUntilBuild false - version '191.6707.61' - plugins = ["org.jetbrains.kotlin", "org.jetbrains.android"] +// updateSinceUntilBuild false + version = "2022.2" + type = "IC" + plugins = ["org.jetbrains.kotlin", "org.jetbrains.android", "com.intellij.java"] } boolean isFirst = true @@ -60,6 +61,13 @@ boolean isWindows() { return System.getProperty("os.name").toLowerCase().indexOf("windows") != -1 } +tasks{ + patchPluginXml { + sinceBuild = "222" + untilBuild = "999.*" + } +} + gradle.taskGraph.beforeTask { if (isFirst && !isWindows()) { isFirst = false @@ -84,6 +92,7 @@ gradle.taskGraph.beforeTask { } if (it instanceof Zip && !it.toString().contains("CodeLocatorModel")) { + it.duplicatesStrategy = DuplicatesStrategy.INCLUDE it.from({ file("imgcopy.m") }) diff --git a/CodeLocatorPlugin/gradle/wrapper/gradle-wrapper.properties b/CodeLocatorPlugin/gradle/wrapper/gradle-wrapper.properties index 6c9a224..17655d0 100644 --- a/CodeLocatorPlugin/gradle/wrapper/gradle-wrapper.properties +++ b/CodeLocatorPlugin/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/FixJumpErrorDialog.kt b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/FixJumpErrorDialog.kt index 8f4385f..bb7e1f7 100644 --- a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/FixJumpErrorDialog.kt +++ b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/FixJumpErrorDialog.kt @@ -13,7 +13,6 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.ui.DialogWrapper import com.intellij.openapi.ui.Messages import com.intellij.openapi.util.SystemInfo -import sun.font.FontDesignMetrics import java.awt.Dimension import javax.swing.* @@ -141,7 +140,7 @@ class FixJumpErrorDialog( close(0) } try { - val stringWidth = FontDesignMetrics.getMetrics(confirmBtn.font).stringWidth(confrimText) + 10 + val stringWidth = confirmBtn.getFontMetrics(confirmBtn.font).stringWidth(confrimText) + 10 confirmBtn.maximumSize = Dimension(stringWidth, 40) cancelBtn.maximumSize = Dimension(stringWidth, 40) } catch (t: Throwable) { diff --git a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/SearchColorDialog.kt b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/SearchColorDialog.kt index c2e2ef7..7f768fd 100644 --- a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/SearchColorDialog.kt +++ b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/SearchColorDialog.kt @@ -17,8 +17,7 @@ import com.intellij.openapi.ui.Messages import com.intellij.openapi.wm.ex.WindowManagerEx import com.intellij.ui.LightweightHint import com.intellij.ui.awt.RelativePoint -import org.jetbrains.kotlin.idea.util.onTextChange -import sun.font.FontDesignMetrics +import org.jetbrains.kotlin.idea.core.util.onTextChange import java.awt.Dimension import java.awt.FontMetrics import java.awt.event.ActionListener @@ -172,7 +171,7 @@ class SearchColorDialog( lineWidthRemain[line] = resultPanelBox.width result.forEachIndexed { index, result -> val makeJLabel = makeJLabel(result) - val stringWidth = FontDesignMetrics.getMetrics(makeJLabel.font).stringWidth(result) + val stringWidth = makeJLabel.getFontMetrics(makeJLabel.font).stringWidth(result) if (stringWidth >= resultPanelBox.width) { val createHorizontalBox = Box.createHorizontalBox() createHorizontalBox.add(makeJLabel) diff --git a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/SendSchemaDialog.kt b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/SendSchemaDialog.kt index bff03f0..562efeb 100644 --- a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/SendSchemaDialog.kt +++ b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/SendSchemaDialog.kt @@ -44,7 +44,6 @@ import com.intellij.ui.awt.RelativePoint import com.intellij.ui.components.JBList import com.intellij.ui.components.JBScrollPane import com.intellij.ui.table.JBTable -import com.sun.jndi.toolkit.url.Uri import io.reactivex.rxjava3.core.Observable import io.reactivex.rxjava3.disposables.Disposable import java.awt.Component @@ -262,7 +261,6 @@ class SendSchemaDialog( private fun convertToEncodeSchema(originSchema: String?): String { originSchema ?: return "" try { - val uri = Uri(originSchema) var hasQuery = true val indexOfSplit = originSchema.indexOf("?") if (indexOfSplit > -1) { @@ -326,7 +324,6 @@ class SendSchemaDialog( return } val uriStr = textField.text - val uri = Uri(uriStr) var hasQuery = false val indexOfSplit = uriStr.indexOf("?") if (indexOfSplit > -1) { diff --git a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/ShowConfigDialog.kt b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/ShowConfigDialog.kt index dc85ca3..0221bfe 100644 --- a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/ShowConfigDialog.kt +++ b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/ShowConfigDialog.kt @@ -3,7 +3,6 @@ package com.bytedance.tools.codelocator.dialog import com.bytedance.tools.codelocator.utils.* import com.intellij.openapi.project.Project import com.intellij.openapi.wm.ex.WindowManagerEx -import sun.font.FontDesignMetrics import java.awt.Dimension import java.awt.Font import java.awt.event.MouseAdapter @@ -142,7 +141,7 @@ class ShowConfigDialog( hide() } try { - val stringWidth = FontDesignMetrics.getMetrics(confirmButton!!.font).stringWidth(btnText) + val stringWidth = confirmButton!!.getFontMetrics(confirmButton!!.font).stringWidth(btnText) confirmButton!!.maximumSize = Dimension(stringWidth, 38) } catch (t: Throwable) { Log.e("getfont width error", t) @@ -159,7 +158,7 @@ class ShowConfigDialog( hide() } try { - val stringWidth = FontDesignMetrics.getMetrics(dontShowButton.font).stringWidth(dontShowText) + val stringWidth = dontShowButton.getFontMetrics(dontShowButton.font).stringWidth(dontShowText) dontShowButton.maximumSize = Dimension(stringWidth, 38) } catch (t: Throwable) { Log.e("getFont width error", t) diff --git a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/ShowDownloadSourceDialog.kt b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/ShowDownloadSourceDialog.kt index fb4c4c3..ad40363 100644 --- a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/ShowDownloadSourceDialog.kt +++ b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/ShowDownloadSourceDialog.kt @@ -8,7 +8,6 @@ import com.intellij.openapi.progress.Task import com.intellij.openapi.project.Project import com.intellij.openapi.ui.DialogWrapper import com.intellij.openapi.util.SystemInfo -import sun.font.FontDesignMetrics import java.awt.Dimension import javax.swing.Action import javax.swing.BorderFactory @@ -104,7 +103,7 @@ class ShowDownloadSourceDialog(val codeLocatorWindow: CodeLocatorWindow, val pro close(0) } try { - val stringWidth = FontDesignMetrics.getMetrics(confirmButton.font).stringWidth(btnText) + val stringWidth = confirmButton.getFontMetrics(confirmButton.font).stringWidth(btnText) confirmButton.maximumSize = Dimension(stringWidth, 38) } catch (t: Throwable) { Log.e("getfont width error", t) @@ -117,7 +116,7 @@ class ShowDownloadSourceDialog(val codeLocatorWindow: CodeLocatorWindow, val pro close(0) } try { - val stringWidth = FontDesignMetrics.getMetrics(dontShowButton.font).stringWidth(dontShowText) + val stringWidth = dontShowButton.getFontMetrics(dontShowButton.font).stringWidth(dontShowText) dontShowButton.maximumSize = Dimension(stringWidth, 38) } catch (t: Throwable) { Log.e("getFont width error", t) diff --git a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/ShowHistoryDialog.kt b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/ShowHistoryDialog.kt index 53bb541..c87b83b 100644 --- a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/ShowHistoryDialog.kt +++ b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/ShowHistoryDialog.kt @@ -14,7 +14,6 @@ import com.intellij.openapi.wm.ex.WindowManagerEx import com.intellij.ui.awt.RelativePoint import io.reactivex.rxjava3.core.Observable import io.reactivex.rxjava3.disposables.Disposable -import sun.font.FontDesignMetrics import java.awt.Dimension import java.awt.Font import java.awt.Image @@ -107,7 +106,7 @@ class ShowHistoryDialog( val buttonWidth = DIALOG_WIDTH - CoordinateUtils.DEFAULT_BORDER * 4 val jButton = JButton() jButton.font = Font(jButton.font.name, Font.PLAIN, 12) - val fontMetrics = FontDesignMetrics.getMetrics(jButton.font) + val fontMetrics = jButton.getFontMetrics(jButton.font) var grabTime = "" try { diff --git a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/ShowNewsDialog.kt b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/ShowNewsDialog.kt index 27f5a70..93a3ff6 100644 --- a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/ShowNewsDialog.kt +++ b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/ShowNewsDialog.kt @@ -3,7 +3,6 @@ package com.bytedance.tools.codelocator.dialog import com.bytedance.tools.codelocator.utils.* import com.intellij.openapi.project.Project import com.intellij.openapi.wm.ex.WindowManagerEx -import sun.font.FontDesignMetrics import java.awt.Dimension import java.awt.Font import java.io.File @@ -109,7 +108,7 @@ class ShowNewsDialog(val project: Project, val msg: String, val version: String) hide() } try { - val stringWidth = FontDesignMetrics.getMetrics(confirmBtn.font).stringWidth(confrimText) + val stringWidth = confirmBtn.getFontMetrics(confirmBtn.font).stringWidth(confrimText) confirmBtn.maximumSize = Dimension(stringWidth, 38) } catch (t: Throwable) { Log.e("getFont width error", t) diff --git a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/ShowTraceDialog.kt b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/ShowTraceDialog.kt index 45e770a..2b45558 100644 --- a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/ShowTraceDialog.kt +++ b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/ShowTraceDialog.kt @@ -7,7 +7,6 @@ import com.bytedance.tools.codelocator.utils.* import com.intellij.openapi.project.Project import com.intellij.openapi.ui.Messages import com.intellij.openapi.wm.ex.WindowManagerEx -import sun.font.FontDesignMetrics import java.awt.Dimension import java.awt.Font import java.awt.event.MouseAdapter @@ -100,7 +99,7 @@ class ShowTraceDialog( val buttonWidth = DIALOG_WIDTH - CoordinateUtils.DEFAULT_BORDER * 4 val jButton = JButton() jButton.font = Font(jButton.font.name, Font.PLAIN, 12) - val fontMetrics = FontDesignMetrics.getMetrics(jButton.font) + val fontMetrics = jButton.getFontMetrics(jButton.font) var keyWorkInfo = "" if (showInfo.keyword != "null") { keyWorkInfo = "
 " + UIUtils.getMatchWidthStr( diff --git a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/listener/CodeLocatorApplicationInitializedListener.java b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/listener/CodeLocatorApplicationInitializedListener.java index 0ae98e5..8c977a4 100644 --- a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/listener/CodeLocatorApplicationInitializedListener.java +++ b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/listener/CodeLocatorApplicationInitializedListener.java @@ -10,13 +10,18 @@ import com.intellij.codeInsight.hint.HintManager; import com.intellij.codeInsight.hint.HintManagerImpl; import com.intellij.ide.ApplicationInitializedListener; +import com.intellij.openapi.Disposable; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.EditorFactory; import com.intellij.openapi.editor.event.SelectionEvent; import com.intellij.openapi.editor.event.SelectionListener; import com.intellij.openapi.project.Project; +import com.intellij.openapi.project.ProjectManager; +import com.intellij.openapi.project.ProjectManagerListener; import com.intellij.openapi.project.impl.ProjectLifecycleListener; +import com.intellij.openapi.ui.DialogWrapper; +import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.TextRange; import com.intellij.ui.LightweightHint; import com.intellij.ui.awt.RelativePoint; @@ -42,6 +47,8 @@ public class CodeLocatorApplicationInitializedListener implements ApplicationIni private static int maxWidth; + private static Disposable disposable = Disposer.newDisposable(); + public static void setColorInfo(List colorInfo) { if (colorInfo == null || colorInfo.isEmpty()) { return; @@ -68,10 +75,10 @@ public void componentsInitialized() { ThreadUtils.submit(() -> { NetUtils.fetchConfig(); }); - - ApplicationManager.getApplication().getMessageBus().connect().subscribe(ProjectLifecycleListener.TOPIC, new ProjectLifecycleListener() { + Disposer.register(ApplicationManager.getApplication(),disposable); + ApplicationManager.getApplication().getMessageBus().connect().subscribe(ProjectManager.TOPIC, new ProjectManagerListener() { @Override - public void afterProjectClosed(@NotNull Project project) { + public void projectClosed(@NotNull Project project) { final Device currentDevice = DeviceManager.getCurrentDevice(project, true); if (currentDevice != null && currentDevice.getDevice() != null) { final String serialNumber = currentDevice.getDevice().getSerialNumber(); @@ -141,12 +148,12 @@ public void selectionChanged(@NotNull SelectionEvent e) { point.y -= ((colorInfos.size() - 1) * CoordinateUtils.TABLE_RIGHT_MARGIN + colorInfos.size() * HINT_ITEM_HEIGHT + CoordinateUtils.TABLE_RIGHT_MARGIN); lastSelectText = null; HintManagerImpl.getInstanceImpl() - .showHint(colorInfosPanel, - new RelativePoint(e.getEditor().getComponent().getRootPane(), point), - HintManager.HIDE_BY_ANY_KEY | HintManager.HIDE_BY_TEXT_CHANGE | HintManager.HIDE_BY_OTHER_HINT | HintManager.HIDE_BY_SCROLLING, 0); + .showHint(colorInfosPanel, + new RelativePoint(e.getEditor().getComponent().getRootPane(), point), + HintManager.HIDE_BY_ANY_KEY | HintManager.HIDE_BY_TEXT_CHANGE | HintManager.HIDE_BY_OTHER_HINT | HintManager.HIDE_BY_SCROLLING, 0); Mob.mob(Mob.Action.CLICK, Mob.Button.COLOR_MODE); } - }); + }, disposable); } } diff --git a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/listener/CodeLocatorStartupActivity.java b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/listener/CodeLocatorStartupActivity.java index 17ae075..6b425ff 100644 --- a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/listener/CodeLocatorStartupActivity.java +++ b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/listener/CodeLocatorStartupActivity.java @@ -114,7 +114,7 @@ private void onSyncFinish(Project project) { } private void subscribeNotification(@NotNull Project project, Disposable tempDisposable) { - project.getMessageBus().connect(tempDisposable).subscribe(Notifications.TOPIC, new NotificationsAdapter() { + project.getMessageBus().connect(tempDisposable).subscribe(Notifications.TOPIC, new Notifications() { boolean hasSync = false; @Override diff --git a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/panels/ScaleImagePanel.java b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/panels/ScaleImagePanel.java index 8a97576..1f26f1e 100644 --- a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/panels/ScaleImagePanel.java +++ b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/panels/ScaleImagePanel.java @@ -98,7 +98,7 @@ private void paintChessboard(Graphics g) { int patternSize = 2 * cellSize; if (pattern == null) { - pattern = UIUtil.createImage(g, patternSize, patternSize, BufferedImage.TYPE_INT_ARGB); + pattern = UIUtil.createImage(this, patternSize, patternSize, BufferedImage.TYPE_INT_ARGB); Graphics imageGraphics = pattern.getGraphics(); imageGraphics.setColor(whiteColor); imageGraphics.fillRect(0, 0, patternSize, patternSize); diff --git a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/panels/TableColumnAdjuster.java b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/panels/TableColumnAdjuster.java index e772efa..ab5e036 100644 --- a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/panels/TableColumnAdjuster.java +++ b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/panels/TableColumnAdjuster.java @@ -159,7 +159,7 @@ private void updateTableColumn(int column, int width) { width = Math.max(width, tableColumn.getPreferredWidth()); } - columnSizes.put(tableColumn, new Integer(tableColumn.getWidth())); + columnSizes.put(tableColumn, tableColumn.getWidth()); table.getTableHeader().setResizingColumn(tableColumn); tableColumn.setWidth(width); From 73d9ee04992079356e708f1374ee853e9e700906 Mon Sep 17 00:00:00 2001 From: yangjiaqi Date: Fri, 25 Apr 2025 11:32:15 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=E6=B7=BB=E5=8A=A0=E6=94=AF=E6=8C=81K2?= =?UTF-8?q?=E7=9A=84=E5=A3=B0=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CodeLocatorPlugin/src/main/resources/META-INF/plugin.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CodeLocatorPlugin/src/main/resources/META-INF/plugin.xml b/CodeLocatorPlugin/src/main/resources/META-INF/plugin.xml index c7a69a6..9b1e8ac 100644 --- a/CodeLocatorPlugin/src/main/resources/META-INF/plugin.xml +++ b/CodeLocatorPlugin/src/main/resources/META-INF/plugin.xml @@ -52,6 +52,10 @@ org.jetbrains.android + + + + From c682f0cbd7ef3309290162cfe1bbd917aeb3256e Mon Sep 17 00:00:00 2001 From: yangjiaqi Date: Fri, 25 Apr 2025 11:45:46 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8DclassNotFound?= =?UTF-8?q?=E5=B4=A9=E6=BA=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/codelocator/dialog/SearchColorDialog.kt | 5 +---- .../bytedance/tools/codelocator/utils/UIUtils.kt | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/utils/UIUtils.kt diff --git a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/SearchColorDialog.kt b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/SearchColorDialog.kt index 7f768fd..6ca3771 100644 --- a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/SearchColorDialog.kt +++ b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/dialog/SearchColorDialog.kt @@ -8,18 +8,15 @@ import com.bytedance.tools.codelocator.utils.CoordinateUtils import com.bytedance.tools.codelocator.utils.JComponentUtils import com.bytedance.tools.codelocator.utils.Log import com.bytedance.tools.codelocator.utils.ResUtils +import com.bytedance.tools.codelocator.utils.onTextChange import com.bytedance.tools.codelocator.views.JTextHintField import com.intellij.codeInsight.hint.HintManager import com.intellij.codeInsight.hint.HintManagerImpl -import com.intellij.openapi.editor.Editor import com.intellij.openapi.project.Project import com.intellij.openapi.ui.Messages import com.intellij.openapi.wm.ex.WindowManagerEx -import com.intellij.ui.LightweightHint import com.intellij.ui.awt.RelativePoint -import org.jetbrains.kotlin.idea.core.util.onTextChange import java.awt.Dimension -import java.awt.FontMetrics import java.awt.event.ActionListener import java.awt.event.KeyEvent import java.awt.event.MouseAdapter diff --git a/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/utils/UIUtils.kt b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/utils/UIUtils.kt new file mode 100644 index 0000000..de572cc --- /dev/null +++ b/CodeLocatorPlugin/src/main/java/com/bytedance/tools/codelocator/utils/UIUtils.kt @@ -0,0 +1,15 @@ +package com.bytedance.tools.codelocator.utils + +import com.intellij.ui.DocumentAdapter +import javax.swing.event.DocumentEvent +import javax.swing.text.JTextComponent + +fun JTextComponent.onTextChange(action: (DocumentEvent) -> Unit) { + document.addDocumentListener( + object : DocumentAdapter() { + override fun textChanged(e: DocumentEvent) { + action(e) + } + } + ) +} \ No newline at end of file