GitPedia

Noice.nvim

๐Ÿ’ฅ Highly experimental plugin that completely replaces the UI for messages, cmdline and the popupmenu.

From folkeยทUpdated June 22, 2026ยทView on GitHubยท

Highly experimental plugin that completely replaces the UI for `messages`, `cmdline` and the `popupmenu`. The project is written primarily in Lua, distributed under the Apache License 2.0 license, first published in 2022. It has gained significant community traction with 5,770 stars and 171 forks on GitHub. Key topics include: neovim, neovim-lua-plugin, neovim-plugin, neovim-ui.

Latest release: v4.10.0
February 6, 2025View Changelog โ†’

๐Ÿ’ฅ Noice (Nice, Noise, Notice)

Highly experimental plugin that completely replaces the UI for messages, cmdline and the popupmenu.

image

โœจ Features

  • ๐ŸŒ… fully configurable views like nvim-notify,
    splits, popups, virtual text, ..
  • ๐Ÿ” use filters to route messages to different views
  • ๐ŸŒˆ message highlights are preserved in the views (like the colors of :hi)
  • ๐Ÿ“ command output like :messages
    is shown in normal buffers, which makes it much easier to work with
  • ๐Ÿ“š :Noice command to show a full message history
  • โŒจ๏ธ no more :h more-prompt
  • ๐Ÿ’ป fully customizable cmdline with icons
  • ๐Ÿ’… syntax highlighting for vim and lua on the cmdline
  • ๐Ÿšฅ statusline components
  • ๐Ÿ”ญ open message history in telescope.nvim or fzf-lua

๐Ÿ”ฅ Status

Noice is using the new experimental vim.ui_attach API, so issues are to be expected.
It is highly recommended to use Neovim nightly, since a bunch of issues have already been fixed upstream.
Check this tracking issue for a list of known issues.

โšก๏ธ Requirements

  • Neovim >= 0.9.0 (nightly highly recommended)
  • nui.nvim: used for proper rendering and multiple views
  • nvim-notify: notification view (optional)
  • a Nerd Font (optional)
  • nvim-treesitter (optional, but highly recommended)
    used for highlighting the cmdline and lsp docs. Make sure to install the parsers for
    vim, regex, lua, bash, markdown and markdown_inline

๐Ÿ“ฆ Installation

Install the plugin with your preferred package manager:

lua
-- lazy.nvim { "folke/noice.nvim", event = "VeryLazy", opts = { -- add any options here }, dependencies = { -- if you lazy-load any plugin below, make sure to add proper `module="..."` entries "MunifTanjim/nui.nvim", -- OPTIONAL: -- `nvim-notify` is only needed, if you want to use the notification view. -- If not available, we use `mini` as the fallback "rcarriga/nvim-notify", } }

Suggested setup:

lua
require("noice").setup({ lsp = { -- override markdown rendering so that **cmp** and other plugins use **Treesitter** override = { ["vim.lsp.util.convert_input_to_markdown_lines"] = true, ["vim.lsp.util.stylize_markdown"] = true, ["cmp.entry.get_documentation"] = true, -- requires hrsh7th/nvim-cmp }, }, -- you can enable a preset for easier configuration presets = { bottom_search = true, -- use a classic bottom cmdline for search command_palette = true, -- position the cmdline and popupmenu together long_message_to_split = true, -- long messages will be sent to a split inc_rename = false, -- enables an input dialog for inc-rename.nvim lsp_doc_border = false, -- add a border to hover docs and signature help }, })

It's a good idea to run :checkhealth noice after installing to check for common issues.

<details><summary>vim-plug</summary>
vim
" vim-plug call plug#begin() Plug 'folke/noice.nvim' Plug 'MunifTanjim/nui.nvim' call plug#end() lua require("noice").setup()
</details>

โš™๏ธ Configuration

noice.nvim comes with the following defaults:

Check the wiki for configuration recipes.

lua
{ cmdline = { enabled = true, -- enables the Noice cmdline UI view = "cmdline_popup", -- view for rendering the cmdline. Change to `cmdline` to get a classic cmdline at the bottom opts = {}, -- global options for the cmdline. See section on views ---@type table<string, CmdlineFormat> format = { -- conceal: (default=true) This will hide the text in the cmdline that matches the pattern. -- view: (default is cmdline view) -- opts: any options passed to the view -- icon_hl_group: optional hl_group for the icon -- title: set to anything or empty string to hide cmdline = { pattern = "^:", icon = "๏”", lang = "vim" }, search_down = { kind = "search", pattern = "^/", icon = "๏€‚ ๏„ƒ", lang = "regex" }, search_up = { kind = "search", pattern = "^%?", icon = "๏€‚ ๏„‚", lang = "regex" }, filter = { pattern = "^:%s*!", icon = "$", lang = "bash" }, lua = { pattern = { "^:%s*lua%s+", "^:%s*lua%s*=%s*", "^:%s*=%s*" }, icon = "๎˜ ", lang = "lua" }, help = { pattern = "^:%s*he?l?p?%s+", icon = "๏Ÿ•" }, input = { view = "cmdline_input", icon = "๓ฐฅป " }, -- Used by input() -- lua = false, -- to disable a format, set to `false` }, }, messages = { -- NOTE: If you enable messages, then the cmdline is enabled automatically. -- This is a current Neovim limitation. enabled = true, -- enables the Noice messages UI view = "notify", -- default view for messages view_error = "notify", -- view for errors view_warn = "notify", -- view for warnings view_history = "messages", -- view for :messages view_search = "virtualtext", -- view for search count messages. Set to `false` to disable }, popupmenu = { enabled = true, -- enables the Noice popupmenu UI ---@type 'nui'|'cmp' backend = "nui", -- backend to use to show regular cmdline completions ---@type NoicePopupmenuItemKind|false -- Icons for completion item kinds (see defaults at noice.config.icons.kinds) kind_icons = {}, -- set to `false` to disable icons }, -- default options for require('noice').redirect -- see the section on Command Redirection ---@type NoiceRouteConfig redirect = { view = "popup", filter = { event = "msg_show" }, }, -- You can add any custom commands below that will be available with `:Noice command` ---@type table<string, NoiceCommand> commands = { history = { -- options for the message history that you get with `:Noice` view = "split", opts = { enter = true, format = "details" }, filter = { any = { { event = "notify" }, { error = true }, { warning = true }, { event = "msg_show", kind = { "" } }, { event = "lsp", kind = "message" }, }, }, }, -- :Noice last last = { view = "popup", opts = { enter = true, format = "details" }, filter = { any = { { event = "notify" }, { error = true }, { warning = true }, { event = "msg_show", kind = { "" } }, { event = "lsp", kind = "message" }, }, }, filter_opts = { count = 1 }, }, -- :Noice errors errors = { -- options for the message history that you get with `:Noice` view = "popup", opts = { enter = true, format = "details" }, filter = { error = true }, filter_opts = { reverse = true }, }, all = { -- options for the message history that you get with `:Noice` view = "split", opts = { enter = true, format = "details" }, filter = {}, }, }, notify = { -- Noice can be used as `vim.notify` so you can route any notification like other messages -- Notification messages have their level and other properties set. -- event is always "notify" and kind can be any log level as a string -- The default routes will forward notifications to nvim-notify -- Benefit of using Noice for this is the routing and consistent history view enabled = true, view = "notify", }, lsp = { progress = { enabled = true, -- Lsp Progress is formatted using the builtins for lsp_progress. See config.format.builtin -- See the section on formatting for more details on how to customize. --- @type NoiceFormat|string format = "lsp_progress", --- @type NoiceFormat|string format_done = "lsp_progress_done", throttle = 1000 / 30, -- frequency to update lsp progress message view = "mini", }, override = { -- override the default lsp markdown formatter with Noice ["vim.lsp.util.convert_input_to_markdown_lines"] = false, -- override the lsp markdown formatter with Noice ["vim.lsp.util.stylize_markdown"] = false, -- override cmp documentation with Noice (needs the other options to work) ["cmp.entry.get_documentation"] = false, }, hover = { enabled = true, silent = false, -- set to true to not show a message if hover is not available view = nil, -- when nil, use defaults from documentation ---@type NoiceViewOptions opts = {}, -- merged with defaults from documentation }, signature = { enabled = true, auto_open = { enabled = true, trigger = true, -- Automatically show signature help when typing a trigger character from the LSP luasnip = true, -- Will open signature help when jumping to Luasnip insert nodes throttle = 50, -- Debounce lsp signature help request by 50ms }, view = nil, -- when nil, use defaults from documentation ---@type NoiceViewOptions opts = {}, -- merged with defaults from documentation }, message = { -- Messages shown by lsp servers enabled = true, view = "notify", opts = {}, }, -- defaults for hover and signature help documentation = { view = "hover", ---@type NoiceViewOptions opts = { lang = "markdown", replace = true, render = "plain", format = { "{message}" }, win_options = { concealcursor = "n", conceallevel = 3 }, }, }, }, markdown = { hover = { ["|(%S-)|"] = vim.cmd.help, -- vim help links ["%[.-%]%((%S-)%)"] = require("noice.util").open, -- markdown links }, highlights = { ["|%S-|"] = "@text.reference", ["@%S+"] = "@parameter", ["^%s*(Parameters:)"] = "@text.title", ["^%s*(Return:)"] = "@text.title", ["^%s*(See also:)"] = "@text.title", ["{%S-}"] = "@parameter", }, }, health = { checker = true, -- Disable if you don't want health checks to run }, ---@type NoicePresets presets = { -- you can enable a preset by setting it to true, or a table that will override the preset config -- you can also add custom presets that you can enable/disable with enabled=true bottom_search = false, -- use a classic bottom cmdline for search command_palette = false, -- position the cmdline and popupmenu together long_message_to_split = false, -- long messages will be sent to a split inc_rename = false, -- enables an input dialog for inc-rename.nvim lsp_doc_border = false, -- add a border to hover docs and signature help }, throttle = 1000 / 30, -- how frequently does Noice need to check for ui updates? This has no effect when in blocking mode. ---@type NoiceConfigViews views = {}, ---@see section on views ---@type NoiceRouteConfig[] routes = {}, --- @see section on routes ---@type table<string, NoiceFilter> status = {}, --- @see section on statusline components ---@type NoiceFormatOptions format = {}, --- @see section on formatting }
<details> <summary>If you don't want to use a Nerd Font, you can replace the icons with Unicode symbols.</summary>
lua
require("noice").setup({ cmdline = { format = { cmdline = { icon = ">" }, search_down = { icon = "๐Ÿ”โŒ„" }, search_up = { icon = "๐Ÿ”โŒƒ" }, filter = { icon = "$" }, lua = { icon = "โ˜พ" }, help = { icon = "?" }, }, }, format = { level = { icons = { error = "โœ–", warn = "โ–ผ", info = "โ—", }, }, }, popupmenu = { kind_icons = false, }, inc_rename = { cmdline = { format = { IncRename = { icon = "โŸณ" }, }, }, }, })
</details>

๐Ÿ” Filters

Noice uses filters to route messages to specific views.

NameTypeDescription
anyfilter[]checks that at least one of the filters matches
blockingbooleanare we in blocking mode?
clearedbooleanchecks if the message is cleared, meaning it's in the history
cmdlineboolean or stringchecks if the message was generated by executing a cmdline. When string, then it is used as a pattern
errorbooleanall error-like kinds from ext_messages
eventstring or string[]any of the events from ext_messages or cmdline. See :h ui-messages
findstringuses lua string.find to match the pattern
hasbooleanchecks if the message is exists, meaning it's in the history
kindstring or string[]any of the kinds from ext_messages. See :h ui-messages
max_heightnumbermaximum height of the message
max_lengthnumbermaximum length of the message (total width of all the lines)
max_widthnumbermaximum width of the message
min_heightnumberminimum height of the message
min_lengthnumberminimum length of the message (total width of all the lines)
min_widthnumberminimum width of the message
modestringchecks if vim.api.nvim_get_mode() contains the given mode
notfilterchecks whether the filter matches or not
warningbooleanall warning-like kinds from ext_messages
<details> <summary>Example:</summary>
lua
-- all messages over 10 lines, excluding echo and search_count local filter = { event = "msg_show", min_height = 10, ["not"] = { kind = { "search_count", "echo" } }, }
</details>

๐ŸŒ… Views

Noice comes with the following built-in backends:

A View (config.views) is a combination of a backend and options.
Noice comes with the following built-in views with sane defaults:

ViewBackendDescription
notifynotifynvim-notify with level=nil, replace=false, merge=false
splitsplithorizontal split
vsplitsplitvertical split
popuppopupsimple popup
miniminiminimal view, by default bottom right, right-aligned
cmdlinepopupbottom line, similar to the classic cmdline
cmdline_popuppopupfancy cmdline popup, with different styles according to the cmdline mode
cmdline_outputsplitsplit used by config.presets.cmdline_output_to_split
messagessplitsplit used for :messages
confirmpopuppopup used for confirm events
hoverpopuppopup used for lsp signature help and hover
popupmenunui.menuspecial view with the options used to render the popupmenu when backend is nui

Please refer to noice.config.views
to see the options.
Any options passed to existing views in config.views, will override those options only.
You can configure completely new views and use them in custom routes.

<details> <summary>Example:</summary>
lua
-- override the default split view to always enter the split when it opens require("noice").setup({ views = { split = { enter = true, }, }, })
</details>

All built-in Noice views have the filetype noice

Nui Options

See the Nui documentation for Popup
and Split.

<table> <tr><td>Option</td><td>Description</td></tr> <tr> <td> <b>size, position</b> </td> <td>Size, position and their constituents can additionally be specified as <b>"auto"</b>, to use the message height and width.</td> </tr> <tr> <td><b>win_options.winhighlight</b></td> <td> String or can also be a table like:
lua
{ win_options = { winhighlight = { Normal = "NormalFloat", FloatBorder = "FloatBorder" }, } }
</td> </tr> <td> <b>scrollbar</b> </td> <td>Set to <code>false</code> to hide the scrollbar.</td> </tr> <tr> </table>

Notify Options

OptionTypeDefaultDescription
titlestring"Notification"title to be used for the notification. Uses Message.title if available.
replacebooleanfalsewhen true, messages routing to the same notify instance will replace existing messages instead of pushing a new notification every time
mergebooleanfalseMerge messages into one Notification or create separate notifications
levelnumber|stringnilnotification level. Uses Message.level if available.

Virtual Text Options

Right now there's only an option to set the hl_group used to render the virtual text.

๐ŸŽจ Formatting

Formatting options can be specified with config.format.
For a list of the defaults, please refer to config.format

Noice includes the following formatters:

  • level: message level with optional icon and hl_group per level
  • text: any text with optional hl_group
  • title: message title with optional hl_group
  • event: message event with optional hl_group
  • kind: message kind with optional hl_group
  • date: formatted date with optional date format string
  • message: message content itself with optional hl_group to override message highlights
  • confirm: only useful for confirm messages. Will format the choices as buttons.
  • cmdline: will render the cmdline in the message that generated the message.
  • progress: progress bar used by lsp progress
  • spinner: spinners used by lsp progress
  • data: render any custom data from Message.opts. Useful in combination with the opts passed to vim.notify

Formatters are used in format definitions. Noice includes the following built-in formats:

lua
{ -- default format default = { "{level} ", "{title} ", "{message}" }, -- default format for vim.notify views notify = { "{message}" }, -- default format for the history details = { "{level} ", "{date} ", "{event}", { "{kind}", before = { ".", hl_group = "NoiceFormatKind" } }, " ", "{title} ", "{cmdline} ", "{message}", }, telescope = ..., -- formatter used to display telescope results telescope_preview = ..., -- formatter used to preview telescope results fzf = ..., -- formatter used to display fzf results fzf_preview = ..., -- formatter used to preview fzf results lsp_progress = ..., -- formatter used by lsp progress lsp_progress_done = ..., -- formatter used by lsp progress }

Text before/after the formatter or in the before/after options, will only be rendered if the formatter itself rendered something.

The format view option, can be either a string (one of the built-in formats), or a table with a custom format definition.

To align text, you can use the align option for a view. Can be center, left or right.

๐Ÿš— Routes

A route has a filter, view and optional opts attribute.

  • view: one of the views (built-in or custom)
  • filter a filter for messages matching this route
  • opts: options for the view and the route

Route options can be any of the view options above, or one of:

OptionTypeDefaultDescription
skipbooleanfalsemessages matching this filter will be skipped and not shown in any views
stopbooleantrueWhen false and a route matches the filter, then other routes can still process the message too. Useful if you want certain messages to be shown in multiple views.

Please refer to noice.config.routes
for an overview of the default routes.
Routes passed to setup() will be prepended to the default routes.

<details> <summary>Example</summary>
lua
-- skip search_count messages instead of showing them as virtual text require("noice").setup({ routes = { { filter = { event = "msg_show", kind = "search_count" }, opts = { skip = true }, }, }, }) -- always route any messages with more than 20 lines to the split view require("noice").setup({ routes = { { view = "split", filter = { event = "msg_show", min_height = 20 }, }, }, })
</details>

๐Ÿšฅ Statusline Components

Noice comes with the following statusline components:

  • ruler
  • message: last line of the last message (event=show_msg)
  • command: showcmd
  • mode: showmode (@recording messages)
  • search: search count messages

See noice.config.status for the default config.

You can add custom statusline components in setup under the status key.

Statusline components have the following methods:

  • get: gets the content of the message without highlights
  • get_hl: gets the content of the message with highlights
  • has: checks if the component is available
<details> <summary>Example of configuring <a href="https://github.com/nvim-lualine/lualine.nvim">lualine.nvim</a></summary>
lua
require("lualine").setup({ sections = { lualine_x = { { require("noice").api.status.message.get_hl, cond = require("noice").api.status.message.has, }, { require("noice").api.status.command.get, cond = require("noice").api.status.command.has, color = { fg = "#ff9e64" }, }, { require("noice").api.status.mode.get, cond = require("noice").api.status.mode.has, color = { fg = "#ff9e64" }, }, { require("noice").api.status.search.get, cond = require("noice").api.status.search.has, color = { fg = "#ff9e64" }, }, }, }, })
</details>

๐Ÿ”ญ Pickers

For convenience, you can do :Noice pick, which will open a picker with all the messages in the history,
either with telescope or fzf-lua.

๐Ÿ”ญ Telescope

In order to use Noice in Telescope, you can either do :Noice telescope,
or register the extension and use :Telescope noice.
The results panel is formatted using config.format.formatters.telescope. The preview is formatted with config.format.formatters.telescope_preview

lua
require("telescope").load_extension("noice")

๐Ÿ”ญ Fzf Lua

In order to use Noice in FzfLua, you can do :Noice fzf.
The results panel is formatted using config.format.formatters.fzf. The preview is formatted with config.format.formatters.telescope_fzf

๐Ÿš€ Usage

  • :Noice or :Noice history shows the message history
  • :Noice last shows the last message in a popup
  • :Noice dismiss dismiss all visible messages
  • :Noice errors shows the error messages in a split. Last errors on top
  • :Noice disable disables Noice
  • :Noice enable enables Noice
  • :Noice stats shows debugging stats
  • :Noice telescope opens message history in Telescope

Alternatively, all commands also exist as a full name like :NoiceLast, :NoiceDisable.

You can also use Lua equivalents.

lua
vim.keymap.set("n", "<leader>nl", function() require("noice").cmd("last") end) vim.keymap.set("n", "<leader>nh", function() require("noice").cmd("history") end)

You can add custom commands with config.commands

โ†ช๏ธ Command Redirection

Sometimes it's useful to redirect the messages generated by a command or function
to a different view. That can be easily achieved with command redirection.

The redirect API can taken an optional routes parameter, which defaults to {config.redirect}.

lua
-- redirect ":hi" require("noice").redirect("hi") -- redirect some function require("noice").redirect(function() print("test") end)

Adding the following keymap, will redirect the active cmdline when pressing <S-Enter>.
The cmdline stays open, so you can change the command and execute it again.
When exiting the cmdline, the popup window will be focused.

lua
vim.keymap.set("c", "<S-Enter>", function() require("noice").redirect(vim.fn.getcmdline()) end, { desc = "Redirect Cmdline" })

Lsp Hover Doc Scrolling

lua
vim.keymap.set({ "n", "i", "s" }, "<c-f>", function() if not require("noice.lsp").scroll(4) then return "<c-f>" end end, { silent = true, expr = true }) vim.keymap.set({ "n", "i", "s" }, "<c-b>", function() if not require("noice.lsp").scroll(-4) then return "<c-b>" end end, { silent = true, expr = true })

๐ŸŒˆ Highlight Groups

<details> <summary>Click to see all highlight groups</summary> <!-- hl_start -->
Highlight GroupDefault GroupDescription
NoiceCmdlineMsgAreaNormal for the classic cmdline area at the bottom"
NoiceCmdlineIconDiagnosticSignInfoCmdline icon
NoiceCmdlineIconCalculatorNoiceCmdlineIcon
NoiceCmdlineIconCmdlineNoiceCmdlineIcon
NoiceCmdlineIconFilterNoiceCmdlineIcon
NoiceCmdlineIconHelpNoiceCmdlineIcon
NoiceCmdlineIconIncRenameNoiceCmdlineIcon
NoiceCmdlineIconInputNoiceCmdlineIcon
NoiceCmdlineIconLuaNoiceCmdlineIcon
NoiceCmdlineIconSearchDiagnosticSignWarnCmdline search icon (/ and ?)
NoiceCmdlinePopupNormalNormal for the cmdline popup
NoiceCmdlinePopupBorderDiagnosticSignInfoCmdline popup border
NoiceCmdlinePopupBorderCalculatorNoiceCmdlinePopupBorder
NoiceCmdlinePopupBorderCmdlineNoiceCmdlinePopupBorder
NoiceCmdlinePopupBorderFilterNoiceCmdlinePopupBorder
NoiceCmdlinePopupBorderHelpNoiceCmdlinePopupBorder
NoiceCmdlinePopupBorderIncRenameNoiceCmdlinePopupBorder
NoiceCmdlinePopupBorderInputNoiceCmdlinePopupBorder
NoiceCmdlinePopupBorderLuaNoiceCmdlinePopupBorder
NoiceCmdlinePopupBorderSearchDiagnosticSignWarnCmdline popup border for search
NoiceCmdlinePopupTitleDiagnosticSignInfoCmdline popup border
NoiceCmdlinePromptTitleprompt for input()
NoiceCompletionItemKindClassNoiceCompletionItemKindDefault
NoiceCompletionItemKindColorNoiceCompletionItemKindDefault
NoiceCompletionItemKindConstantNoiceCompletionItemKindDefault
NoiceCompletionItemKindConstructorNoiceCompletionItemKindDefault
NoiceCompletionItemKindDefaultSpecial
NoiceCompletionItemKindEnumNoiceCompletionItemKindDefault
NoiceCompletionItemKindEnumMemberNoiceCompletionItemKindDefault
NoiceCompletionItemKindFieldNoiceCompletionItemKindDefault
NoiceCompletionItemKindFileNoiceCompletionItemKindDefault
NoiceCompletionItemKindFolderNoiceCompletionItemKindDefault
NoiceCompletionItemKindFunctionNoiceCompletionItemKindDefault
NoiceCompletionItemKindInterfaceNoiceCompletionItemKindDefault
NoiceCompletionItemKindKeywordNoiceCompletionItemKindDefault
NoiceCompletionItemKindMethodNoiceCompletionItemKindDefault
NoiceCompletionItemKindModuleNoiceCompletionItemKindDefault
NoiceCompletionItemKindPropertyNoiceCompletionItemKindDefault
NoiceCompletionItemKindSnippetNoiceCompletionItemKindDefault
NoiceCompletionItemKindStructNoiceCompletionItemKindDefault
NoiceCompletionItemKindTextNoiceCompletionItemKindDefault
NoiceCompletionItemKindUnitNoiceCompletionItemKindDefault
NoiceCompletionItemKindValueNoiceCompletionItemKindDefault
NoiceCompletionItemKindVariableNoiceCompletionItemKindDefault
NoiceCompletionItemMenunoneNormal for the popupmenu
NoiceCompletionItemWordnoneNormal for the popupmenu
NoiceConfirmNormalNormal for the confirm view
NoiceConfirmBorderDiagnosticSignInfoBorder for the confirm view
NoiceCursorCursorFake Cursor
NoiceFormatConfirmCursorLine
NoiceFormatConfirmDefaultVisual
NoiceFormatDateSpecial
NoiceFormatEventNonText
NoiceFormatKindNonText
NoiceFormatLevelDebugNonText
NoiceFormatLevelErrorDiagnosticVirtualTextError
NoiceFormatLevelInfoDiagnosticVirtualTextInfo
NoiceFormatLevelOffNonText
NoiceFormatLevelTraceNonText
NoiceFormatLevelWarnDiagnosticVirtualTextWarn
NoiceFormatProgressDoneSearchProgress bar done
NoiceFormatProgressTodoCursorLineprogress bar todo
NoiceFormatTitleTitle
NoiceLspProgressClientTitleLsp progress client name
NoiceLspProgressSpinnerConstantLsp progress spinner
NoiceLspProgressTitleNonTextLsp progress title
NoiceMiniMsgAreaNormal for mini view
NoicePopupNormalFloatNormal for popup views
NoicePopupBorderFloatBorderBorder for popup views
NoicePopupmenuPmenuNormal for the popupmenu
NoicePopupmenuBorderFloatBorderPopupmenu border
NoicePopupmenuMatchSpecialPart of the item that matches the input
NoicePopupmenuSelectedPmenuSelSelected item in the popupmenu
NoiceScrollbarPmenuSbarNormal for scrollbar
NoiceScrollbarThumbPmenuThumbScrollbar thumb
NoiceSplitNormalFloatNormal for split views
NoiceSplitBorderFloatBorderBorder for split views
NoiceVirtualTextDiagnosticVirtualTextInfoDefault hl group for virtualtext views
<!-- hl_end --> </details>

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub โ†’

This article is auto-generated from folke/noice.nvim via the GitHub API.Last fetched: 6/25/2026