Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 2e42d4b

Browse files
committed
feat: show params on submission failed
1 parent 8e6b380 commit 2e42d4b

File tree

4 files changed

+42
-31
lines changed

4 files changed

+42
-31
lines changed

lua/leetcode-ui/group/case.lua

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
local log = require("leetcode.logger")
2-
local t = require("leetcode.translator")
31
local utils = require("leetcode.utils")
42

53
local Pre = require("leetcode-ui.group.pre")
4+
local Input = require("leetcode-ui.group.pre.input")
65
local Stdout = require("leetcode-ui.group.pre.stdout")
76
local Group = require("leetcode-ui.group")
8-
local Lines = require("leetcode-ui.lines")
9-
107
local Line = require("leetcode-ui.line")
118

9+
local t = require("leetcode.translator")
10+
local log = require("leetcode.logger")
11+
1212
---@alias case_body { input: string[], raw_input: string, output: string, expected: string, std_output: string }
1313

1414
---@class lc.ui.Case : lc.ui.Group
@@ -22,22 +22,7 @@ local Case = Group:extend("LeetCase")
2222

2323
---@private
2424
---@param input string[]
25-
function Case:input(input)
26-
local key = t("Input")
27-
28-
local group = Group({}, { spacing = 1 })
29-
30-
for i, case in ipairs(input) do
31-
local ok, param = pcall(function() return self.question.q.meta_data.params[i].name end)
32-
if ok then group:append(param .. " =", "leetcode_normal"):endl() end
33-
group:append(case):endgrp()
34-
end
35-
36-
local title = Line():append(key, "leetcode_normal")
37-
local pre = Pre(title, group)
38-
39-
return pre
40-
end
25+
function Case:input(input) return Input("Input", input, self.question.q.meta_data.params) end
4126

4227
---@private
4328
---@param output string

lua/leetcode-ui/group/pre/input.lua

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
local Pre = require("leetcode-ui.group.pre")
2+
local Group = require("leetcode-ui.group")
3+
local Line = require("leetcode-ui.line")
4+
5+
local t = require("leetcode.translator")
6+
7+
---@class lc.ui.Input : lc.ui.Pre
8+
local Input = Pre:extend("LeetSimilarQuestions")
9+
10+
---@param title string
11+
---@param input string[]
12+
function Input:init(title, input, params) --
13+
local group = Group({}, { spacing = 1 })
14+
15+
for i, case in ipairs(input) do
16+
local ok, param = pcall(function() return params[i].name end)
17+
if ok then group:append(param .. " =", "leetcode_normal"):endl() end
18+
group:append(case):endgrp()
19+
end
20+
21+
local title_line = Line():append(t(title), "leetcode_normal")
22+
23+
Input.super.init(self, title_line, group)
24+
end
25+
26+
---@type fun(title: string, input: string[], params: lc.QuestionResponse.metadata.param): lc.ui.Padding
27+
local LeetInput = Input
28+
29+
return LeetInput

lua/leetcode-ui/group/similar-questions.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ local ui_utils = require("leetcode-ui.utils")
99

1010
local t = require("leetcode.translator")
1111

12-
---@class lc.ui.SimilarQuestions : lc.ui.Lines
12+
---@class lc.ui.SimilarQuestions : lc.ui.Group
1313
local SimilarQuestions = Group:extend("LeetSimilarQuestions")
1414

1515
---@param questions lc.QuestionResponse.similar

lua/leetcode-ui/renderer/result.lua

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ local SimilarQuestions = require("leetcode-ui.group.similar-questions")
55

66
local Renderer = require("leetcode-ui.renderer")
77
local Pre = require("leetcode-ui.group.pre")
8-
local Group = require("leetcode-ui.group")
8+
local Input = require("leetcode-ui.group.pre.input")
99
local Stdout = require("leetcode-ui.group.pre.stdout")
1010
local Case = require("leetcode-ui.group.case")
1111

@@ -141,15 +141,12 @@ function ResultLayout:handle_limit_exceeded(item) -- status code = 12,13,14
141141
self:insert(header)
142142

143143
if item._.submission then
144-
local last_testcase = Line()
145-
last_testcase:append(item.last_testcase:gsub("\n", " "), "leetcode_indent")
146-
147-
local pre_header = Line()
148-
pre_header:append((" %s"):format(t("Last Executed Input")), "leetcode_normal")
149-
150-
local last_exec = Pre(pre_header, last_testcase)
151-
152-
self:insert(last_exec)
144+
local input = Input(
145+
(" %s"):format(t("Last Executed Input")),
146+
vim.split(item.last_testcase, "\n"),
147+
self.parent.question.q.meta_data.params
148+
)
149+
self:insert(input)
153150

154151
local stdout = Stdout(item.std_output or "")
155152
self:insert(stdout)

0 commit comments

Comments
 (0)