From b878b2edcd1992f50c8cf699a0c111bc0a1c07fb Mon Sep 17 00:00:00 2001 From: bestcondition Date: Fri, 29 Mar 2024 01:17:52 +0800 Subject: [PATCH 1/2] feat: press alt to open code from url --- .../plugin/listener/QueryKeyListener.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/main/java/com/shuzijun/leetcode/plugin/listener/QueryKeyListener.java b/src/main/java/com/shuzijun/leetcode/plugin/listener/QueryKeyListener.java index cf2a14cd..cd9bf17b 100644 --- a/src/main/java/com/shuzijun/leetcode/plugin/listener/QueryKeyListener.java +++ b/src/main/java/com/shuzijun/leetcode/plugin/listener/QueryKeyListener.java @@ -4,6 +4,7 @@ import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.progress.Task; import com.intellij.openapi.project.Project; +import com.shuzijun.leetcode.plugin.manager.CodeManager; import com.shuzijun.leetcode.plugin.manager.NavigatorAction; import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; @@ -13,6 +14,8 @@ import javax.swing.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; +import java.net.MalformedURLException; +import java.net.URL; /** * @author shuzijun @@ -49,6 +52,24 @@ public void run(@NotNull ProgressIndicator progressIndicator) { } }); } + if (e.getKeyCode() == KeyEvent.VK_ALT) { + ProgressManager.getInstance().run(new Task.Backgroundable(project, "Open code from URL", false) { + @Override + public void run(@NotNull ProgressIndicator progressIndicator) { + String selectText = jTextField.getText(); + try { + URL url = new URL(selectText); + String path = url.getPath(); + String[] pathSegments = path.split("/"); + String titleSlug = pathSegments[2]; + CodeManager.openCode(titleSlug, project); + } catch (MalformedURLException ex) { + throw new RuntimeException(ex); + } + } + }); + + } } @Override From ecf4b74f2e20cf3ca2531662a2d283043c1e7692 Mon Sep 17 00:00:00 2001 From: bestcondition Date: Fri, 29 Mar 2024 01:41:11 +0800 Subject: [PATCH 2/2] feat: if input is url, open code from it --- .../plugin/listener/QueryKeyListener.java | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/shuzijun/leetcode/plugin/listener/QueryKeyListener.java b/src/main/java/com/shuzijun/leetcode/plugin/listener/QueryKeyListener.java index cd9bf17b..fa46fc54 100644 --- a/src/main/java/com/shuzijun/leetcode/plugin/listener/QueryKeyListener.java +++ b/src/main/java/com/shuzijun/leetcode/plugin/listener/QueryKeyListener.java @@ -43,32 +43,24 @@ public void keyTyped(KeyEvent e) { public void keyPressed(KeyEvent e) { if (e.getKeyChar() == KeyEvent.VK_ENTER) { ProgressManager.getInstance().run(new Task.Backgroundable(project, "Search", false) { - @Override - public void run(@NotNull ProgressIndicator progressIndicator) { - String selectText = jTextField.getText(); - navigatorAction.getPageInfo().disposeFilters("searchKeywords", selectText, StringUtils.isNotBlank(selectText)); - navigatorAction.getPageInfo().setPageIndex(1); - navigatorAction.loadServiceData(); - } - }); - } - if (e.getKeyCode() == KeyEvent.VK_ALT) { - ProgressManager.getInstance().run(new Task.Backgroundable(project, "Open code from URL", false) { @Override public void run(@NotNull ProgressIndicator progressIndicator) { String selectText = jTextField.getText(); try { + // if is url, open it URL url = new URL(selectText); String path = url.getPath(); String[] pathSegments = path.split("/"); String titleSlug = pathSegments[2]; CodeManager.openCode(titleSlug, project); } catch (MalformedURLException ex) { - throw new RuntimeException(ex); + // if not, search it + navigatorAction.getPageInfo().disposeFilters("searchKeywords", selectText, StringUtils.isNotBlank(selectText)); + navigatorAction.getPageInfo().setPageIndex(1); + navigatorAction.loadServiceData(); } } }); - } }