Pickers
Built-in pickers
Section titled “Built-in pickers”/on an empty line opens the command picker: every slash command (including yours), fuzzy-filtered as you type, with descriptions./connectwith no arguments opens the world picker over your saved bookmarks.Ctrl+Ropens history search;Ctrl+Tsearches your aliases.
Inside any picker: type to filter, arrows to move, Enter to select,
Esc/Ctrl+C to cancel. In the inline command picker, Tab completes the
highlighted command into the input line.
Results appear above the editor, with one shared separator and no separate picker box. Modal pickers show their labeled filter at the bottom and hide your command draft until they close. Inline completion keeps the command field active in that same position and uses its text to filter suggestions. Find uses the same arrangement for its search query, with matching output above it, a match count beside the query, and navigation help above the separator.
Your own pickers
Section titled “Your own pickers”Use rune.ui.picker.show to open a picker from a script:
rune.ui.picker.show({ title = "Where to?", items = { { text = "temple", desc = "the safe room", value = "temple" }, { text = "smithy", desc = "repairs", value = "smithy" }, { text = "harbor", desc = "boats east", value = "harbor" }, }, on_select = function(value) rune.send("walkto " .. value) end,})on_select receives the selected item’s value, which defaults to its
text. Items can also be plain strings. Pass mode = "inline" for a
compact picker attached to the input line instead of a modal (the title
only shows in modal mode), and match_description = true to fuzzy-match
descriptions too.
Bind it to a key and you have a custom menu:
rune.bind("f3", function() rune.ui.picker.show({ title = "Paths", items = path_names, on_select = go })end)Related: rune.ui.picker reference, Input & History for tab completion and history navigation, Key Bindings