From 5489883e0199632b8aa269ae268739c96c4b272e Mon Sep 17 00:00:00 2001 From: Kevin Date: Mon, 4 Nov 2024 02:15:18 -0300 Subject: core: smol lua fixes --- lang/lua/astal/variable.lua | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'lang/lua/astal/variable.lua') diff --git a/lang/lua/astal/variable.lua b/lang/lua/astal/variable.lua index 2305a71..f06fd16 100644 --- a/lang/lua/astal/variable.lua +++ b/lang/lua/astal/variable.lua @@ -40,7 +40,7 @@ function Variable.new(value) return variable end ----@param transform? fun(v: any): any +---@param transform? fun(v: any): any ---@return Binding function Variable:__call(transform) if type(transform) == "nil" then @@ -54,10 +54,13 @@ function Variable:__tostring() return "Variable<" .. tostring(self:get()) .. ">" end +---@return any function Variable:get() return self._value end +---@param value any +---@return nil function Variable:set(value) if value ~= self:get() then self._value = value @@ -107,7 +110,6 @@ function Variable:start_watch() end) end - function Variable:stop_poll() if self:is_polling() then self._poll.cancel() @@ -122,7 +124,6 @@ function Variable:stop_watch() self._watch = nil end - function Variable:drop() self.variable.emit_dropped() end @@ -180,8 +181,9 @@ end ---@param exec string | string[] ---@param transform? fun(next: any, prev: any): any +---@return Variable function Variable:watch(exec, transform) - transform = transform or function (next) + transform = transform or function(next) return next end @@ -272,4 +274,4 @@ return setmetatable(Variable, { __call = function(_, v) return Variable.new(v) end, -}) \ No newline at end of file +}) -- cgit v1.2.3 From f02e58342c61b4ae312344be2805aa019d65541d Mon Sep 17 00:00:00 2001 From: Kevin Date: Tue, 5 Nov 2024 15:53:23 -0300 Subject: core: typing for lua --- lang/lua/astal/variable.lua | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'lang/lua/astal/variable.lua') diff --git a/lang/lua/astal/variable.lua b/lang/lua/astal/variable.lua index f06fd16..7a0d712 100644 --- a/lang/lua/astal/variable.lua +++ b/lang/lua/astal/variable.lua @@ -17,6 +17,7 @@ local Process = require("astal.process") ---@field private poll_fn? function ---@field private watch_transform? fun(next: any, prev: any): any ---@field private watch_exec? string[] | string +---@overload fun(value?: any): Variable local Variable = {} Variable.__index = Variable @@ -24,19 +25,19 @@ Variable.__index = Variable ---@return Variable function Variable.new(value) local v = Astal.VariableBase() - local variable = setmetatable({ - variable = v, - _value = value, - }, Variable) + local variable = setmetatable({ variable = v, _value = value }, Variable) + v.on_dropped = function() variable:stop_watch() variable:stop_poll() end + v.on_error = function(_, err) if variable.err_handler then variable.err_handler(err) end end + return variable end -- cgit v1.2.3 From b1da91dcced3803c764d22d4da1a49c23d7e97ed Mon Sep 17 00:00:00 2001 From: Kevin Date: Tue, 5 Nov 2024 16:13:49 -0300 Subject: oops --- lang/lua/astal/variable.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lang/lua/astal/variable.lua') diff --git a/lang/lua/astal/variable.lua b/lang/lua/astal/variable.lua index 7a0d712..9f67715 100644 --- a/lang/lua/astal/variable.lua +++ b/lang/lua/astal/variable.lua @@ -17,7 +17,7 @@ local Process = require("astal.process") ---@field private poll_fn? function ---@field private watch_transform? fun(next: any, prev: any): any ---@field private watch_exec? string[] | string ----@overload fun(value?: any): Variable +---@overload fun(transform?: fun(v: any): any): Binding local Variable = {} Variable.__index = Variable -- cgit v1.2.3 From 990feb3ab1ce8221edf03e1babe33a9ce48af54c Mon Sep 17 00:00:00 2001 From: Kevin Date: Mon, 11 Nov 2024 00:53:46 -0300 Subject: core: Variable.derive fix --- lang/lua/astal/variable.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lang/lua/astal/variable.lua') diff --git a/lang/lua/astal/variable.lua b/lang/lua/astal/variable.lua index 9f67715..ad59a3f 100644 --- a/lang/lua/astal/variable.lua +++ b/lang/lua/astal/variable.lua @@ -243,7 +243,7 @@ function Variable.derive(deps, transform) for i, var in ipairs(deps) do if getmetatable(var) == Variable then - deps[i] = Binding.new(var) + deps[i] = var() end end @@ -252,7 +252,7 @@ function Variable.derive(deps, transform) for i, binding in ipairs(deps) do params[i] = binding:get() end - return transform(table.unpack(params), 1, #deps) + return transform(table.unpack(params, 1, #deps)) end local var = Variable.new(update()) -- cgit v1.2.3