From da89202faea361bb85107cae078f1c6cbcb77c41 Mon Sep 17 00:00:00 2001 From: robin Date: Thu, 27 Nov 2025 17:35:18 +0100 Subject: [PATCH] feat(builtins): builtins picker --- lua/artio/builtins.lua | 29 +++++++++++++++++++++++++++++ plugin/artio.lua | 6 +++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/lua/artio/builtins.lua b/lua/artio/builtins.lua index 6645e99..cc89be4 100644 --- a/lua/artio/builtins.lua +++ b/lua/artio/builtins.lua @@ -16,6 +16,35 @@ end local builtins = {} +builtins.builtins = function(props) + props = props or {} + + return artio.generic( + vim.tbl_keys(builtins), + extend({ + prompt = "builtins", + on_close = function(fname, _) + if not builtins[fname] then + return + end + + local Picker = require("artio.picker") + local current = Picker.active_picker + if not current or not current.closed then + return + end + + vim.schedule(function() + vim.defer_fn(builtins[fname], 10) + vim.wait(1000, function() + return coroutine.status(current.co) == "dead" + end) + end) + end, + }, props) + ) +end + local findprg = vim.fn.executable("fd") == 1 and "fd -H -p -a -t f --color=never --" or "find . -type f -iregex '.*$*.*'" diff --git a/plugin/artio.lua b/plugin/artio.lua index 454b314..a35b2a0 100644 --- a/plugin/artio.lua +++ b/plugin/artio.lua @@ -34,6 +34,10 @@ vim.api.nvim_create_autocmd({ "UIEnter", "ColorScheme" }, { vim.api.nvim_create_user_command("Artio", function(opts) local builtins = require("artio.builtins") + if #opts.fargs == 0 then + builtins.builtins() + return + end local builtin = builtins[opts.fargs[1]] if not builtin then vim.notify("unknown builtin: " .. opts.fargs[1], vim.log.levels.ERROR) @@ -41,7 +45,7 @@ vim.api.nvim_create_user_command("Artio", function(opts) end builtin() end, { - nargs = 1, + nargs = "?", complete = function(_, _, _) return vim.tbl_keys(require("artio.builtins")) end, -- 2.51.2