Skip to content

Latest commit

 

History

History
126 lines (103 loc) · 2.39 KB

input.md

File metadata and controls

126 lines (103 loc) · 2.39 KB

🍿 input

Better vim.ui.input.

image

📦 Setup

-- lazy.nvim
{
  "folke/snacks.nvim",
  ---@type snacks.Config
  opts = {
    input = {
      -- your input configuration comes here
      -- or leave it empty to use the default settings
      -- refer to the configuration section below
    }
  }
}

⚙️ Config

---@class snacks.input.Config
---@field enabled? boolean
---@field win? snacks.win.Config|{}
---@field icon? string
---@field icon_pos? snacks.input.Pos
---@field prompt_pos? snacks.input.Pos
{
  icon = "",
  icon_hl = "SnacksInputIcon",
  icon_pos = "left",
  prompt_pos = "title",
  win = { style = "input" },
  expand = true,
}

🎨 Styles

Check the styles docs for more information on how to customize these styles

input

{
  backdrop = false,
  position = "float",
  border = "rounded",
  title_pos = "center",
  height = 1,
  width = 60,
  relative = "editor",
  noautocmd = true,
  row = 2,
  -- relative = "cursor",
  -- row = -3,
  -- col = 0,
  wo = {
    winhighlight = "NormalFloat:SnacksInputNormal,FloatBorder:SnacksInputBorder,FloatTitle:SnacksInputTitle",
    cursorline = false,
  },
  bo = { filetype = "snacks_input" },
  --- buffer local variables
  b = {
    completion = false, -- disable blink completions in input
  },
  keys = {
    i_esc = { "<esc>", { "cmp_close", "cancel" }, mode = "i" },
    -- i_esc = { "<esc>", "stopinsert", mode = "i" },
    i_cr = { "<cr>", { "cmp_accept", "confirm" }, mode = "i" },
    i_tab = { "<tab>", { "cmp_select_next", "cmp" }, mode = "i" },
    q = "cancel",
  },
}

📚 Types

---@alias snacks.input.Pos "left"|"title"|false
---@class snacks.input.Opts: snacks.input.Config
---@field prompt? string
---@field default? string
---@field completion? string
---@field highlight? fun()

📦 Module

Snacks.input()

---@type fun(opts: snacks.input.Opts, on_confirm: fun(value?: string)): snacks.win
Snacks.input()

Snacks.input.disable()

Snacks.input.disable()

Snacks.input.enable()

Snacks.input.enable()

Snacks.input.input()

---@param opts? snacks.input.Opts
---@param on_confirm fun(value?: string)
Snacks.input.input(opts, on_confirm)