Skip to content

smelt.list

Tier: Host — Available in every runtime, including headless mode.

Picker-style virtual list widget. smelt.list.new(opts) returns a handle that owns the buffer, current selection, and keymaps so a plugin can render a scrollable selectable list inside any window or dialog leaf. UiHost-only.

smelt.list.new

fun(opts: smelt.list.Opts): table

Types: smelt.list.Opts

Build a structured list bound to the dialog-list opts.leaf and its backing opts.buf. opts.items is the data source; opts.render(item) returns { text, marks }; opts.filter(item) is optional and re-runs whenever :set_filter / :refresh fires. opts.empty_text shows when no row passes the filter. Returns a handle with :selected, :set_filter, :refresh, :set_cursor, :move_cursor. See the header docstring for the full usage shape.