fix: typing
This commit is contained in:
parent
fa26344cd0
commit
6ae9488761
3 changed files with 205 additions and 54 deletions
|
|
@ -1,3 +1,11 @@
|
|||
---@class cp.ProvisionalState
|
||||
---@field bufnr integer
|
||||
---@field platform string
|
||||
---@field contest_id string
|
||||
---@field language string
|
||||
---@field requested_problem_id string|nil
|
||||
---@field token integer
|
||||
|
||||
---@class cp.State
|
||||
---@field get_platform fun(): string?
|
||||
---@field set_platform fun(platform: string)
|
||||
|
|
@ -6,16 +14,19 @@
|
|||
---@field get_problem_id fun(): string?
|
||||
---@field set_problem_id fun(problem_id: string)
|
||||
---@field get_active_panel fun(): string?
|
||||
---@field set_active_panel fun(): string?
|
||||
---@field set_active_panel fun(panel: string?)
|
||||
---@field get_base_name fun(): string?
|
||||
---@field get_source_file fun(language?: string): string?
|
||||
---@field get_binary_file fun(): string?
|
||||
---@field get_input_file fun(): string?
|
||||
---@field get_output_file fun(): string?
|
||||
---@field get_expected_file fun(): string?
|
||||
---@field get_provisional fun(): cp.ProvisionalState|nil
|
||||
---@field set_provisional fun(p: cp.ProvisionalState|nil)
|
||||
|
||||
local M = {}
|
||||
|
||||
---@type table<string, any>
|
||||
local state = {
|
||||
platform = nil,
|
||||
contest_id = nil,
|
||||
|
|
@ -23,32 +34,40 @@ local state = {
|
|||
test_cases = nil,
|
||||
saved_session = nil,
|
||||
active_panel = nil,
|
||||
provisional = nil,
|
||||
}
|
||||
|
||||
---@return string|nil
|
||||
function M.get_platform()
|
||||
return state.platform
|
||||
end
|
||||
|
||||
---@param platform string
|
||||
function M.set_platform(platform)
|
||||
state.platform = platform
|
||||
end
|
||||
|
||||
---@return string|nil
|
||||
function M.get_contest_id()
|
||||
return state.contest_id
|
||||
end
|
||||
|
||||
---@param contest_id string
|
||||
function M.set_contest_id(contest_id)
|
||||
state.contest_id = contest_id
|
||||
end
|
||||
|
||||
---@return string|nil
|
||||
function M.get_problem_id()
|
||||
return state.problem_id
|
||||
end
|
||||
|
||||
---@param problem_id string
|
||||
function M.set_problem_id(problem_id)
|
||||
state.problem_id = problem_id
|
||||
end
|
||||
|
||||
---@return string|nil
|
||||
function M.get_base_name()
|
||||
local platform, contest_id, problem_id = M.get_platform(), M.get_contest_id(), M.get_problem_id()
|
||||
if not platform or not contest_id or not problem_id then
|
||||
|
|
@ -65,10 +84,13 @@ function M.get_base_name()
|
|||
end
|
||||
end
|
||||
|
||||
---@return string|nil
|
||||
function M.get_language()
|
||||
return
|
||||
end
|
||||
|
||||
---@param language? string
|
||||
---@return string|nil
|
||||
function M.get_source_file(language)
|
||||
local base_name = M.get_base_name()
|
||||
if not base_name or not M.get_platform() then
|
||||
|
|
@ -90,34 +112,50 @@ function M.get_source_file(language)
|
|||
return base_name .. '.' .. eff.extension
|
||||
end
|
||||
|
||||
---@return string|nil
|
||||
function M.get_binary_file()
|
||||
local base_name = M.get_base_name()
|
||||
return base_name and ('build/%s.run'):format(base_name) or nil
|
||||
end
|
||||
|
||||
---@return string|nil
|
||||
function M.get_input_file()
|
||||
local base_name = M.get_base_name()
|
||||
return base_name and ('io/%s.cpin'):format(base_name) or nil
|
||||
end
|
||||
|
||||
---@return string|nil
|
||||
function M.get_output_file()
|
||||
local base_name = M.get_base_name()
|
||||
return base_name and ('io/%s.cpout'):format(base_name) or nil
|
||||
end
|
||||
|
||||
---@return string|nil
|
||||
function M.get_expected_file()
|
||||
local base_name = M.get_base_name()
|
||||
return base_name and ('io/%s.expected'):format(base_name) or nil
|
||||
end
|
||||
|
||||
---@return string|nil
|
||||
function M.get_active_panel()
|
||||
return state.active_panel
|
||||
end
|
||||
|
||||
---@param panel string|nil
|
||||
function M.set_active_panel(panel)
|
||||
state.active_panel = panel
|
||||
end
|
||||
|
||||
---@return cp.ProvisionalState|nil
|
||||
function M.get_provisional()
|
||||
return state.provisional
|
||||
end
|
||||
|
||||
---@param p cp.ProvisionalState|nil
|
||||
function M.set_provisional(p)
|
||||
state.provisional = p
|
||||
end
|
||||
|
||||
M._state = state
|
||||
|
||||
return M
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue