irongit

A Neovim plugin enabling you to solve LeetCode problems.

refactor: better `is_valid` validation

kawreauthored
parent fcfd666commit 4cfdafc938309082c1b1880911e26c2b74edbf67Browse files

8 files changed, +19 -16

+3-1lua/leetcode-ui/layout/console.lua
@@ -67,8 +67,10 @@ end
6767 function ConsoleLayout:run(submit)
6868 if config.user.console.open_on_runcode then
6969 self:show()
70- self.result:focus()
7170 end
71+
72+ self.result:focus()
73+
7274 Runner:init(self.question):run(submit)
7375 end
7476
+2-3lua/leetcode-ui/popup/init.lua
@@ -31,10 +31,9 @@ function Popup:_buf_destory()
3131 end
3232
3333 function Popup:focus()
34- if not vim.api.nvim_win_is_valid(self.winid) then
35- return
34+ if self.winid and vim.api.nvim_win_is_valid(self.winid) then
35+ vim.api.nvim_set_current_win(self.winid)
3636 end
37- vim.api.nvim_set_current_win(self.winid)
3837 end
3938
4039 function Popup:clear() --
+3-3lua/leetcode-ui/question.lua
@@ -35,7 +35,7 @@ end
3535
3636 ---@param code? string
3737 function Question:set_lines(code)
38- if not vim.api.nvim_buf_is_valid(self.bufnr) then
38+ if not (self.bufnr and vim.api.nvim_buf_is_valid(self.bufnr)) then
3939 return
4040 end
4141
@@ -164,7 +164,7 @@ function Question:_unmount()
164164 self.console:unmount()
165165 self.description:unmount()
166166
167- if vim.api.nvim_buf_is_valid(self.bufnr) then
167+ if self.bufnr and vim.api.nvim_buf_is_valid(self.bufnr) then
168168 vim.api.nvim_buf_delete(self.bufnr, { force = true, unload = false })
169169 end
170170
@@ -177,7 +177,7 @@ function Question:_unmount()
177177 end
178178
179179 function Question:unmount()
180- if vim.api.nvim_win_is_valid(self.winid) then
180+ if self.winid and vim.api.nvim_win_is_valid(self.winid) then
181181 vim.api.nvim_win_close(self.winid, true)
182182 end
183183 end
+1-1lua/leetcode-ui/renderer/init.lua
@@ -24,7 +24,7 @@ function Renderer:draw(component)
2424 self.bufnr = component.bufnr
2525 self.winid = component.winid
2626
27- if not vim.api.nvim_buf_is_valid(self.bufnr) then
27+ if not (self.bufnr and vim.api.nvim_buf_is_valid(self.bufnr)) then
2828 return
2929 end
3030
+1-1lua/leetcode-ui/renderer/menu.lua
@@ -56,7 +56,7 @@ function Menu:autocmds()
5656 end
5757
5858 function Menu:cursor_move()
59- if not self.winid or not api.nvim_win_is_valid(self.winid) then
59+ if not (self.winid and api.nvim_win_is_valid(self.winid)) then
6060 return
6161 end
6262
+1-1lua/leetcode-ui/utils.lua
@@ -58,7 +58,7 @@ end
5858
5959 ---@param layout lc.ui.Renderer
6060 function utils.win_width(layout)
61- if not vim.api.nvim_win_is_valid(layout.winid) then
61+ if not (layout.winid and vim.api.nvim_win_is_valid(layout.winid)) then
6262 return 0
6363 end
6464 return vim.api.nvim_win_get_width(layout.winid)
+5-5lua/leetcode/command/init.lua
@@ -125,9 +125,6 @@ cmd.expire = vim.schedule_wrap(function()
125125 end)
126126 end)
127127
128----Merge configurations into default configurations and set it as user configurations.
129----
130---@param theme lc-db.Theme
131128 function cmd.qot()
132129 require("leetcode.utils").auth_guard()
133130
@@ -196,7 +193,10 @@ function cmd.yank()
196193 return
197194 end
198195
199- if api.nvim_buf_is_valid(q.bufnr) and api.nvim_win_is_valid(q.winid) then
196+ if
197+ (q.bufnr and api.nvim_buf_is_valid(q.bufnr))
198+ and (q.winid and api.nvim_win_is_valid(q.winid))
199+ then
200200 api.nvim_set_current_win(q.winid)
201201 api.nvim_set_current_buf(q.bufnr)
202202
@@ -388,7 +388,7 @@ function cmd.inject()
388388 return
389389 end
390390
391- if api.nvim_buf_is_valid(q.bufnr) then
391+ if q.bufnr and api.nvim_buf_is_valid(q.bufnr) then
392392 local start_i, end_i = q:range(true)
393393 local not_found = {}
394394
+3-1lua/leetcode/utils.lua
@@ -128,7 +128,9 @@ function utils.translate(content, translated_content)
128128 end
129129
130130 function utils.auth_guard()
131- assert(config.auth.is_signed_in, "User not logged-in")
131+ if not config.auth.is_signed_in then
132+ error("User not logged-in", 0)
133+ end
132134 end
133135
134136 function utils.norm_ins(str)