irongit

A Neovim plugin enabling you to solve LeetCode problems.

feat: sort `Leet tabs`

kawreauthored
parent dde441fcommit 72a0446a01d01fa0b49c53394c40ec5456bb404aBrowse files

3 files changed, +16 -17

+0-15lua/leetcode/command/init.lua
@@ -540,55 +540,40 @@ cmd.commands = {
540540 last_submit = { cmd.last_submit },
541541 restore = { cmd.restore },
542542 inject = { cmd.inject },
543-
544543 session = {
545544 change = {
546545 cmd.change_session,
547-
548546 _args = arguments.session_change,
549547 },
550-
551548 create = {
552549 cmd.create_session,
553-
554550 _args = arguments.session_create,
555551 },
556-
557552 update = { cmd.update_sessions },
558553 },
559-
560554 list = {
561555 cmd.problems,
562-
563556 _args = arguments.list,
564557 },
565-
566558 random = {
567559 cmd.random_question,
568-
569560 _args = arguments.random,
570561 },
571-
572562 desc = {
573563 cmd.desc_toggle,
574564
575565 stats = { cmd.desc_toggle_stats },
576-
577566 toggle = { cmd.desc_toggle },
578567 },
579-
580568 cookie = {
581569 update = { cmd.cookie_prompt },
582570 delete = { cmd.sign_out },
583571 },
584-
585572 cache = {
586573 update = { cmd.cache_update },
587574 },
588-
589575 fix = {
590576 cmd.fix,
591-
592577 _private = true,
593578 },
594579 }
+3-0lua/leetcode/config/icons.lua
@@ -10,6 +10,9 @@ local icons = {
1010 notac = "󱎖",
1111 todo = "",
1212 },
13+ caret = {
14+ right = "",
15+ },
1316 }
1417
1518 icons.hl = {
+13-2lua/leetcode/pickers/question-tabs.lua
@@ -6,6 +6,8 @@ local t = require("leetcode.translator")
66 local pickers = require("telescope.pickers")
77 local finders = require("telescope.finders")
88 local conf = require("telescope.config").values
9+local config = require("leetcode.config")
10+local icons = config.icons
911
1012 local entry_display = require("telescope.pickers.entry_display")
1113 local actions = require("telescope.actions")
@@ -22,7 +24,7 @@ local function display_current(entry)
2224 local tabp = vim.api.nvim_get_current_tabpage()
2325 if tabp ~= entry.tabpage then return unpack({ "", "" }) end
2426
25- return { "", "" }
27+ return { icons.caret.right, "leetcode_ref" }
2628 end
2729
2830 local function display_difficulty(q)
@@ -75,7 +77,16 @@ local opts = require("telescope.themes").get_dropdown()
7577 return {
7678 pick = function()
7779 local tabs = utils.question_tabs()
78- if vim.tbl_isempty(tabs) then return log.warn("No questions opened") end
80+
81+ if vim.tbl_isempty(tabs) then --
82+ return log.warn("No questions opened")
83+ end
84+
85+ table.sort(tabs, function(q1, q2)
86+ local fid1, fid2 =
87+ tonumber(q1.question.q.frontend_id), tonumber(q2.question.q.frontend_id)
88+ return (fid1 and fid2) and fid1 < fid2 or fid1 ~= nil
89+ end)
7990
8091 pickers
8192 .new(opts, {