From a7de92fea82ea9dcd24af435b9b56c652fd36362 Mon Sep 17 00:00:00 2001 From: max397574 Date: Sun, 31 Oct 2021 09:46:40 +0100 Subject: =?UTF-8?q?feat(utils):=20=E2=9C=A8added=20validation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/startup/utils.lua | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/lua/startup/utils.lua b/lua/startup/utils.lua index 5bb4376..b8b7a82 100644 --- a/lua/startup/utils.lua +++ b/lua/startup/utils.lua @@ -232,4 +232,56 @@ function U.set_buf_options() vim.cmd [[setlocal nonu nornu]] end +function U.validate_settings(options) + -- NOTE: vim.validate + vim.validate { + type = { + options.type, + function(arg) + for _, v in ipairs { "mapping", "oldfiles", "text" } do + if v == arg then + return true + end + end + return false + end, + '"mapping" "text" or "oldfiles"', + }, + oldfiles_directory = { + options.oldfiles_directory, + "boolean", + }, + align = { + options.align, + function(arg) + for _, v in ipairs { "right", "left", "center" } do + if v == arg then + return true + end + end + return false + end, + '"center" "left" or "right"', + }, + fold_section = { options.fold_section, "boolean" }, + title = { options.title, "string" }, + margin = { options.margin, "number" }, + command = { options.command, "string" }, + content = {options.content, + function(content) + if options.type =="text" and (type(content)== "table" or type(content == "function")) then + return true + elseif options.type == "mapping" and type(content) == "table" then + return true + end + end}, + default_color = { options.default_color, "string" }, + highlight = { options.highlight, "string" }, + oldfiles_amount = { + options.oldfiles_amount, + "number", + }, + } +end + return U -- cgit v1.2.3