summaryrefslogtreecommitdiff
path: root/script/utility.lua
diff options
context:
space:
mode:
author最萌小汐 <sumneko@hotmail.com>2022-04-01 17:54:19 +0800
committer最萌小汐 <sumneko@hotmail.com>2022-04-01 17:54:19 +0800
commitd699b4cac83b81b023323076b74d3d03b6b13ee6 (patch)
treef5b22d0425e0e467a1604d43b4ed6b22b697c81e /script/utility.lua
parent231e4e3b2be6f815c1d6734185537f777ef32d88 (diff)
downloadlua-language-server-d699b4cac83b81b023323076b74d3d03b6b13ee6.zip
update
Diffstat (limited to 'script/utility.lua')
-rw-r--r--script/utility.lua10
1 files changed, 9 insertions, 1 deletions
diff --git a/script/utility.lua b/script/utility.lua
index e282f12f..1d207350 100644
--- a/script/utility.lua
+++ b/script/utility.lua
@@ -676,6 +676,7 @@ end
---@class switch
---@field cachedCases string[]
---@field map table<string, function>
+---@field _default fun(...):...
local switchMT = {}
switchMT.__index = switchMT
@@ -700,6 +701,13 @@ function switchMT:call(callback)
return self
end
+---@param callback fun(...):...
+---@return switch
+function switchMT:default(callback)
+ self._default = callback
+ return self
+end
+
function switchMT:getMap()
return self.map
end
@@ -713,7 +721,7 @@ end
---@param name string
---@return ...
function switchMT:__call(name, ...)
- local callback = self.map[name]
+ local callback = self.map[name] or self._default
if not callback then
return
end