minimal extui fuzzy finder for neovim

doc: add help doc

+137
+134
doc/artio.txt
··· 1 + *artio.txt* a minimal, nature-infused file picker for neovim using the new 2 + extui window 3 + 4 + ============================================================================== 5 + 6 + FEATURES *artio-features* 7 + 8 + Requires Neovim `>= 0.12` 9 + 10 + - Lightweight picker window built on Neovim's extui 11 + - Prompt + list UI components - minimal and focused 12 + - Fuzzy filtering using matchfuzzy (built-in) 13 + - Optional icon support for common filetypes through mini.icons 14 + (https://github.com/echasnovski/mini.nvim) 15 + - No heavy dependencies - pure Lua 16 + 17 + EXTUI 18 + 19 + artio requires the extui to be enabled. 20 + 21 + an example of how to set this up is: 22 + 23 + >lua 24 + require("vim._extui").enable({ enable = true, msg = { 25 + target = "msg", 26 + } }) 27 + < 28 + 29 + INSTALLATION 30 + 31 + `vim.pack` 32 + 33 + >lua 34 + vim.pack.add({{ src = "https://github.com/comfysage/artio.nvim" }}) 35 + < 36 + 37 + `lazy.nvim` 38 + 39 + >lua 40 + { 41 + "comfysage/artio.nvim", lazy = false, 42 + } 43 + < 44 + 45 + ============================================================================== 46 + 47 + CONFIGURATION *artio-config* 48 + 49 + Options ~ 50 + 51 + options that change default behavior of the picker. 52 + 53 + >lua 54 + { 55 + opts = { 56 + preselect = true, -- whether to preselect the first match 57 + bottom = true, -- whether to draw the prompt at the bottom 58 + shrink = true, -- whether the window should shrink to fit the matches 59 + promptprefix = "", -- prefix for the prompt 60 + prompt_title = true, -- whether to draw the prompt title 61 + pointer = "", -- pointer for the selected match 62 + use_icons = true, -- requires mini.icons 63 + }, 64 + } 65 + < 66 + 67 + Window Options ~ 68 + 69 + some less used options for the picker window and its render logic. 70 + 71 + >lua 72 + { 73 + win = { 74 + height = 12, 75 + hidestatusline = false, -- works best with laststatus=3 76 + }, 77 + } 78 + < 79 + 80 + Mappings ~ 81 + 82 + these override the default mappings for any picker. 83 + these map keys to actions. its allowed to use multiple keys for the same 84 + action. 85 + 86 + NOTE: if you override the mappings, make sure to provide keys for all actions 87 + 88 + >lua 89 + { 90 + mappings = { 91 + ["<down>"] = "down", 92 + ["<up>"] = "up", 93 + ["<cr>"] = "accept", 94 + ["<esc>"] = "cancel", 95 + ["<tab>"] = "mark", 96 + ["<c-l>"] = "togglepreview", 97 + ["<c-q>"] = "setqflist", 98 + ["<m-q>"] = "setqflistmark", 99 + }, 100 + } 101 + < 102 + 103 + Setup ~ 104 + 105 + after setting up artio with your options there are some additional things to 106 + setup. 107 + 108 + Keymaps for artio are set using the |<Plug>| interface. These bindings are set 109 + by the api and can be rebound by the user to specific keybindings. 110 + 111 + By default there are <Plug> bindings for all builtins. |artio-builtins| 112 + 113 + Example ~ 114 + 115 + >lua 116 + require('artio').setup({}) 117 + 118 + -- override built-in ui select with artio 119 + vim.ui.select = require("artio").select 120 + 121 + vim.keymap.set("n", "<leader><leader>", "<Plug>(artio-files)") 122 + vim.keymap.set("n", "<leader>fg", "<Plug>(artio-grep)") 123 + 124 + -- smart file picker 125 + vim.keymap.set("n", "<leader>ff", "<Plug>(artio-smart)") 126 + 127 + -- general built-in pickers 128 + vim.keymap.set("n", "<leader>fh", "<Plug>(artio-helptags)") 129 + vim.keymap.set("n", "<leader>fb", "<Plug>(artio-buffers)") 130 + vim.keymap.set("n", "<leader>f/", "<Plug>(artio-buffergrep)") 131 + vim.keymap.set("n", "<leader>fo", "<Plug>(artio-oldfiles)") 132 + < 133 + 134 + vim:tw=78:ts=8:noet:ft=help:norl:
+3
doc/tags
··· 1 + artio-config artio.txt /*artio-config* 2 + artio-features artio.txt /*artio-features* 3 + artio.txt artio.txt /*artio.txt*