aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config.lua6
-rw-r--r--flake.nix2
-rw-r--r--lua/null-browser/api.lua33
-rw-r--r--lua/null-browser/extras/dmenu.lua2
4 files changed, 37 insertions, 6 deletions
diff --git a/config.lua b/config.lua
index 360ef11..76db77c 100644
--- a/config.lua
+++ b/config.lua
@@ -1,9 +1,9 @@
print('hello starting up...')
--- @type table
-local web = web
+web = web
--- @type table
-local uv = uv
+uv = uv
local function trim(s)
local res, _ = string.gsub(s, '^%s*(.-)%s*$', '%1')
@@ -24,7 +24,7 @@ local history = require 'null-browser.extras.history'
web.event.add_listener('UrlChanged', {
callback = function(opts)
- print('url change', opts.url);
+ print('url change', web.inspect(opts));
history.add(opts.url)
end
})
diff --git a/flake.nix b/flake.nix
index 3d06d0d..9087a60 100644
--- a/flake.nix
+++ b/flake.nix
@@ -17,6 +17,7 @@
lua-libluv = pkgs.callPackage (import ./nix/libluv.nix) {
inherit (myPkgs) libuv luajit;
};
+ lua-inspect = pkgs.luajitPackages.inspect; # TODO: include with build?
};
dependencies = [
@@ -25,6 +26,7 @@
myPkgs.luajit
myPkgs.libuv
myPkgs.lua-libluv
+ myPkgs.lua-inspect
];
in {
devShells.default = pkgs.mkShell rec {
diff --git a/lua/null-browser/api.lua b/lua/null-browser/api.lua
index f6ff5e6..6db0da9 100644
--- a/lua/null-browser/api.lua
+++ b/lua/null-browser/api.lua
@@ -1,4 +1,7 @@
-print("api loaded")
+print("api load started")
+
+--- @type table
+web = web
local function shallow_copy(t)
local t2 = {}
@@ -6,14 +9,40 @@ local function shallow_copy(t)
return t2
end
+-- inspect lua tables
+local inspector_loaded, inspector = pcall(require, 'inspect')
+if inspector_loaded then
+ web.inspect = inspector.inspect
+else
+ web.inspect = function() print('[warn] "inspect" module not loaded') end
+end
+
-- web.keymap = web.keymap or {}
-- web.tab = web.tab or {}
web.event = web.event or {}
-web.event.add_listener = function(events, opts)
+--- Listen to events from the browser
+---
+--- @class null.EventListenerOptions
+--- @field callback any Callback called when that event occurs
+---
+--- @param events string|table Event or events to listen to
+--- @param opts null.EventListenerOptions Options
+---
+--- @example
+--- ```lua
+--- web.event.add_listener('UrlChanged', {
+--- callback = function(opts)
+--- print(opts.url, opts.tab, opts.win)
+--- end,
+--- })
+--- ```
+function web.event.add_listener(events, opts)
opts = shallow_copy(opts or {})
if type(events) == "string" then events = { events } end
opts.events = events or {}
return __internals.register_event(opts)
end
+
+print("api loaded")
diff --git a/lua/null-browser/extras/dmenu.lua b/lua/null-browser/extras/dmenu.lua
index d08eb6a..3a82953 100644
--- a/lua/null-browser/extras/dmenu.lua
+++ b/lua/null-browser/extras/dmenu.lua
@@ -1,5 +1,5 @@
--- @type table
-local uv = uv
+uv = uv
local dmenu = {}