diff options
| -rw-r--r-- | config.lua | 6 | ||||
| -rw-r--r-- | flake.nix | 2 | ||||
| -rw-r--r-- | lua/null-browser/api.lua | 33 | ||||
| -rw-r--r-- | lua/null-browser/extras/dmenu.lua | 2 |
4 files changed, 37 insertions, 6 deletions
@@ -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 }) @@ -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 = {} |
