mirror of
https://github.com/MikaylaFischler/cc-mek-scada.git
synced 2024-08-30 18:22:34 +00:00
53 lines
1.1 KiB
Lua
53 lines
1.1 KiB
Lua
local completion = require("cc.completion")
|
|
|
|
local util = require("scada-common.util")
|
|
|
|
local print = util.print
|
|
|
|
local dialog = {}
|
|
|
|
-- ask the user yes or no
|
|
---@nodiscard
|
|
---@param question string
|
|
---@param default boolean
|
|
---@return boolean|nil
|
|
function dialog.ask_y_n(question, default)
|
|
print(question)
|
|
|
|
if default == true then
|
|
print(" (Y/n)? ")
|
|
else
|
|
print(" (y/N)? ")
|
|
end
|
|
|
|
local response = read(nil, nil)
|
|
|
|
if response == "" then
|
|
return default
|
|
elseif response == "Y" or response == "y" then
|
|
return true
|
|
elseif response == "N" or response == "n" then
|
|
return false
|
|
else
|
|
return nil
|
|
end
|
|
end
|
|
|
|
-- ask the user for an input within a set of options
|
|
---@nodiscard
|
|
---@param options table
|
|
---@param cancel string
|
|
---@return boolean|string|nil
|
|
function dialog.ask_options(options, cancel)
|
|
print("> ")
|
|
local response = read(nil, nil, function(text) return completion.choice(text, options) end)
|
|
|
|
if response == cancel then return false end
|
|
|
|
if util.table_contains(options, response) then
|
|
return response
|
|
else return nil end
|
|
end
|
|
|
|
return dialog
|