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 cf2a14c..fa46fc5 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 @@ -43,9 +46,19 @@ public void keyPressed(KeyEvent e) { @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(); + 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) { + // if not, search it + navigatorAction.getPageInfo().disposeFilters("searchKeywords", selectText, StringUtils.isNotBlank(selectText)); + navigatorAction.getPageInfo().setPageIndex(1); + navigatorAction.loadServiceData(); + } } }); }