diff --git a/lua/leetcode/config/template.lua b/lua/leetcode/config/template.lua index 3d7c5c7..8223044 100644 --- a/lua/leetcode/config/template.lua +++ b/lua/leetcode/config/template.lua @@ -24,6 +24,7 @@ ---| "enter" ---| "question_enter" ---| "leave" +---| "submit" ---@alias lc.size ---| string @@ -120,6 +121,9 @@ local M = { ---@type fun()[] ["leave"] = {}, + + ---@type fun(question: lc.ui.Question, buffer: string, item_json: table)[] + ["submit"] = {}, }, keys = { diff --git a/lua/leetcode/runner/init.lua b/lua/leetcode/runner/init.lua index 69fd543..e61a89a 100644 --- a/lua/leetcode/runner/init.lua +++ b/lua/leetcode/runner/init.lua @@ -4,6 +4,7 @@ local log = require("leetcode.logger") local interpreter = require("leetcode.api.interpreter") local config = require("leetcode.config") local Judge = require("leetcode.logger.spinner.judge") +local utils = require("leetcode.utils") ---@type Path local leetbody = config.storage.cache:joinpath("body") @@ -52,6 +53,10 @@ function Runner:handle(submit) end if item then + -- print(vim.inspect(item)) + -- utils.exec_hooks("submit", question, body.typed_code, item.status_msg, item._.success) + utils.exec_hooks("submit", question, body.typed_code, item) + if item._.success then judge:success(item.status_msg) else