-
Notifications
You must be signed in to change notification settings - Fork 67
/
Copy pathresult.lua
74 lines (60 loc) · 2.11 KB
/
result.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
local ConsolePopup = require("leetcode-ui.popup.console")
local ResultLayout = require("leetcode-ui.renderer.result")
local t = require("leetcode.translator")
local problemlist = require("leetcode.cache.problemlist")
local log = require("leetcode.logger")
local config = require("leetcode.config")
---@class lc.ui.Console.ResultPopup : lc.ui.Console.Popup
---@field renderer lc.ui.Result
---@field last_testcase string
local ResultPopup = ConsolePopup:extend("LeetResultPopup")
---@param item lc.interpreter_response
function ResultPopup:handle(item)
self.border:set_highlight(item._.hl)
self.renderer:handle_res(item)
if item.last_testcase then
self.last_testcase = item.last_testcase
end
if item._.submission then
local status = item.status_code == 10 and "ac" or "notac"
problemlist.change_status(self.console.question.q.title_slug, status)
if status == "ac" then
config.stats.update_streak()
end
end
local Recent = require("leetcode.cache.recent")
Recent.add(self.console.question.q.title_slug)
self:draw()
end
function ResultPopup:clear()
ResultPopup.super.clear(self)
self.last_testcase = nil
self.border:set_highlight("FloatBorder")
end
---@param parent lc.ui.Console
function ResultPopup:init(parent)
local keys = require("leetcode.config").user.keys
ResultPopup.super.init(self, parent, {
border = {
text = {
top = (" (%s) %s "):format(keys.focus_result, t("Result")),
top_align = "center",
bottom = (" (%s) %s "):format(keys.use_testcase, t("Use Testcase")),
bottom_align = "center",
},
},
buf_options = {
modifiable = false,
readonly = false,
},
win_options = {
winhighlight = "Normal:NormalSB,FloatBorder:FloatBorder",
wrap = true,
linebreak = true,
},
})
self.renderer = ResultLayout(parent)
end
---@type fun(parent: lc.ui.Console): lc.ui.Console.ResultPopup
local LeetResultPopup = ResultPopup
return LeetResultPopup