*dressing.txt* *Dressing* *dressing* *dressing.nvim* =============================================================================== CONFIGURATION *dressing-configuration* Configure dressing.nvim by calling the setup() function. > require('dressing').setup({ input = { -- Default prompt string default_prompt = "➤ ", -- When true, will close the modal insert_only = true, -- These are passed to nvim_open_win anchor = "SW", relative = "cursor", row = 0, col = 0, border = "rounded", -- These can be integers or a float between 0 and 1 (e.g. 0.4 for 40%) prefer_width = 40, max_width = nil, min_width = 20, -- Window transparency (0-100) winblend = 10, -- Change default highlight groups (see :help winhl) winhighlight = "", -- see :help dressing_get_config get_config = nil, }, select = { -- Priority list of preferred vim.select implementations backend = { "telescope", "fzf_lua", "fzf", "builtin", "nui" }, -- Options for telescope selector telescope = { -- can be 'dropdown', 'cursor', or 'ivy' theme = "dropdown", }, -- Options for fzf selector fzf = { window = { width = 0.5, height = 0.4, }, }, -- Options for fzf_lua selector fzf_lua = { winopts = { width = 0.5, height = 0.4, }, }, -- Options for nui Menu nui = { position = "50%", size = nil, relative = "editor", border = { style = "rounded", }, max_width = 80, max_height = 40, }, -- Options for built-in selector builtin = { -- These are passed to nvim_open_win anchor = "NW", relative = "cursor", row = 0, col = 0, border = "rounded", -- Window transparency (0-100) winblend = 10, -- Change default highlight groups (see :help winhl) winhighlight = "", -- These can be integers or a float between 0 and 1 (e.g. 0.4 for 40%) width = nil, max_width = 0.8, min_width = 40, height = nil, max_height = 0.9, min_height = 10, }, -- Used to override format_item. See :help dressing-format format_item_override = {}, -- see :help dressing_get_config get_config = nil, }, }) dressing.get_config() *dressing_get_config()* For each of the `input` and `select` configs, there is an option `get_config`. This can be a function that accepts the `opts` parameter that is passed in to `vim.select` or `vim.input`. It must return either `nil` (to no-op) or config values to use in place of the global config values for that module. For example, if you want to use a specific configuration for code actions: > require('dressing').setup({ select = { get_config = function(opts) if opts.kind == 'codeaction' then return { backend = 'nui', nui = { relative = 'cursor', max_width = 40, } } end end } }) =============================================================================== *dressing-format* Sometimes you may wish to change how choices are displayed for `vim.ui.select`. The calling function can pass a specific "kind" to the select function (for example, code actions from |vim.lsp.buf.code_action| use kind="codeaction"). You can, in turn, specify an override for the "format_item" function when selecting for that kind. For example, this configuration will display the name of the language server next to code actions: > format_item_override = { codeaction = function(action_tuple) local title = action_tuple[2].title:gsub("\r\n", "\\r\\n") local client = vim.lsp.get_client_by_id(action_tuple[1]) return string.format("%s\t[%s]", title:gsub("\n", "\\n"), client.name) end, } =============================================================================== vim:ft=help:et:ts=2:sw=2:sts=2:norl