diff options
author | Kevin <[email protected]> | 2024-11-05 15:53:23 -0300 |
---|---|---|
committer | Kevin <[email protected]> | 2024-11-05 15:53:23 -0300 |
commit | f02e58342c61b4ae312344be2805aa019d65541d (patch) | |
tree | 15d554ae1b232c5495944b989035daa04d3f888f | |
parent | b697dd8e1d936d6a789c73fbacfc65698d2dab39 (diff) |
core: typing for lua
-rw-r--r-- | lang/lua/astal/binding.lua | 9 | ||||
-rw-r--r-- | lang/lua/astal/gtk3/widget.lua | 2 | ||||
-rw-r--r-- | lang/lua/astal/variable.lua | 9 |
3 files changed, 14 insertions, 6 deletions
diff --git a/lang/lua/astal/binding.lua b/lang/lua/astal/binding.lua index 81d2177..9708ef8 100644 --- a/lang/lua/astal/binding.lua +++ b/lang/lua/astal/binding.lua @@ -5,7 +5,9 @@ local GObject = lgi.require("GObject", "2.0") ---@field emitter table|Variable ---@field property? string ---@field transform_fn function +---@overload fun(emitter: table | userdata, property?: string): Binding local Binding = {} +Binding.__index = Binding ---@param emitter table | userdata ---@param property? string @@ -68,5 +70,8 @@ function Binding:subscribe(callback) end end -Binding.__index = Binding -return Binding +return setmetatable(Binding, { + __call = function(_, emitter, prop) + return Binding.new(emitter, prop) + end, +}) diff --git a/lang/lua/astal/gtk3/widget.lua b/lang/lua/astal/gtk3/widget.lua index beaad6c..1a4454e 100644 --- a/lang/lua/astal/gtk3/widget.lua +++ b/lang/lua/astal/gtk3/widget.lua @@ -3,7 +3,9 @@ local Astal = lgi.require("Astal", "3.0") local Gtk = lgi.require("Gtk", "3.0") local astalify = require("astal.gtk3.astalify") +---@overload fun(ctor: any): function local Widget = { + ---@overload fun(ctor: any): function astalify = astalify, Box = astalify(Astal.Box), Button = astalify(Astal.Button), 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 |