Regenerate nvim config
This commit is contained in:
975
config/neovim/store/lazy-plugins/noice.nvim/doc/noice.nvim.txt
Normal file
975
config/neovim/store/lazy-plugins/noice.nvim/doc/noice.nvim.txt
Normal file
@ -0,0 +1,975 @@
|
||||
*noice.nvim.txt* For Neovim >= 0.8.0 Last change: 2024 May 23
|
||||
|
||||
==============================================================================
|
||||
Table of Contents *noice.nvim-table-of-contents*
|
||||
|
||||
1. Noice (Nice, Noise, Notice) |noice.nvim-noice-(nice,-noise,-notice)|
|
||||
- Features |noice.nvim-noice-(nice,-noise,-notice)-features|
|
||||
- Status |noice.nvim-noice-(nice,-noise,-notice)-status|
|
||||
- Requirements |noice.nvim-noice-(nice,-noise,-notice)-requirements|
|
||||
- Installation |noice.nvim-noice-(nice,-noise,-notice)-installation|
|
||||
- Configuration |noice.nvim-noice-(nice,-noise,-notice)-configuration|
|
||||
- Filters |noice.nvim-noice-(nice,-noise,-notice)-filters|
|
||||
- Views |noice.nvim-noice-(nice,-noise,-notice)-views|
|
||||
- Formatting |noice.nvim-noice-(nice,-noise,-notice)-formatting|
|
||||
- Routes |noice.nvim-noice-(nice,-noise,-notice)-routes|
|
||||
- Statusline Components|noice.nvim-noice-(nice,-noise,-notice)-statusline-components|
|
||||
- Telescope |noice.nvim-noice-(nice,-noise,-notice)-telescope|
|
||||
- Usage |noice.nvim-noice-(nice,-noise,-notice)-usage|
|
||||
- Highlight Groups |noice.nvim-noice-(nice,-noise,-notice)-highlight-groups|
|
||||
2. Links |noice.nvim-links|
|
||||
|
||||
==============================================================================
|
||||
1. Noice (Nice, Noise, Notice) *noice.nvim-noice-(nice,-noise,-notice)*
|
||||
|
||||
Highly experimental plugin that completely replaces the UI for `messages`,
|
||||
`cmdline` and the `popupmenu`.
|
||||
|
||||
|
||||
FEATURES *noice.nvim-noice-(nice,-noise,-notice)-features*
|
||||
|
||||
- fully **configurable views** like nvim-notify <https://github.com/rcarriga/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 <https://github.com/nvim-telescope/telescope.nvim>
|
||||
|
||||
|
||||
STATUS *noice.nvim-noice-(nice,-noise,-notice)-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
|
||||
<https://github.com/folke/noice.nvim/issues/6> for a list of known issues.
|
||||
|
||||
|
||||
REQUIREMENTS *noice.nvim-noice-(nice,-noise,-notice)-requirements*
|
||||
|
||||
- Neovim >= 0.9.0 **(nightly highly recommended)**
|
||||
- nui.nvim <https://github.com/MunifTanjim/nui.nvim>used for proper rendering and multiple views
|
||||
- nvim-notify <https://github.com/rcarriga/nvim-notify>notification view _(optional)_
|
||||
- a Nerd Font <https://www.nerdfonts.com/> **(optional)**
|
||||
- nvim-treesitter <https://github.com/nvim-treesitter/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 *noice.nvim-noice-(nice,-noise,-notice)-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.
|
||||
|
||||
vim-plug ~
|
||||
|
||||
>vim
|
||||
" vim-plug
|
||||
call plug#begin()
|
||||
Plug 'folke/noice.nvim'
|
||||
Plug 'MunifTanjim/nui.nvim'
|
||||
call plug#end()
|
||||
|
||||
lua require("noice").setup()
|
||||
<
|
||||
|
||||
|
||||
CONFIGURATION *noice.nvim-noice-(nice,-noise,-notice)-configuration*
|
||||
|
||||
**noice.nvim** comes with the following defaults:
|
||||
|
||||
Check the wiki <https://github.com/folke/noice.nvim/wiki/Configuration-Recipes>
|
||||
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 = {}, -- 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
|
||||
},
|
||||
smart_move = {
|
||||
-- noice tries to move out of the way of existing floating windows.
|
||||
enabled = true, -- you can disable this behaviour here
|
||||
-- add any filetypes here, that shouldn't trigger smart move.
|
||||
excluded_filetypes = { "cmp_menu", "cmp_docs", "notify" },
|
||||
},
|
||||
---@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
|
||||
}
|
||||
<
|
||||
|
||||
If you don’t want to use a Nerd Font, you can replace the icons with Unicode symbols. ~
|
||||
|
||||
>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 = "⟳" },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
<
|
||||
|
||||
|
||||
FILTERS *noice.nvim-noice-(nice,-noise,-notice)-filters*
|
||||
|
||||
**Noice** uses filters to route messages to specific views.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
Name Type Description
|
||||
------------ ---------- ------------------------------------------------------
|
||||
any filter[] checks that at least one of the filters matches
|
||||
|
||||
blocking boolean are we in blocking mode?
|
||||
|
||||
cleared boolean checks if the message is cleared, meaning it’s in the
|
||||
history
|
||||
|
||||
cmdline boolean or checks if the message was generated by executing a
|
||||
string cmdline. When string, then it is used as a pattern
|
||||
|
||||
error boolean all error-like kinds from ext_messages
|
||||
|
||||
event string or any of the events from ext_messages or cmdline. See :h
|
||||
string[] ui-messages
|
||||
|
||||
find string uses lua string.find to match the pattern
|
||||
|
||||
has boolean checks if the message is exists, meaning it’s in the
|
||||
history
|
||||
|
||||
kind string or any of the kinds from ext_messages. See :h ui-messages
|
||||
string[]
|
||||
|
||||
max_height number maximum height of the message
|
||||
|
||||
max_length number maximum length of the message (total width of all the
|
||||
lines)
|
||||
|
||||
max_width number maximum width of the message
|
||||
|
||||
min_height number minimum height of the message
|
||||
|
||||
min_length number minimum length of the message (total width of all the
|
||||
lines)
|
||||
|
||||
min_width number minimum width of the message
|
||||
|
||||
mode string checks if vim.api.nvim_get_mode() contains the given
|
||||
mode
|
||||
|
||||
not filter checks whether the filter matches or not
|
||||
|
||||
warning boolean all warning-like kinds from ext_messages
|
||||
------------------------------------------------------------------------------
|
||||
Example: ~
|
||||
|
||||
>lua
|
||||
-- all messages over 10 lines, excluding echo and search_count
|
||||
local filter = {
|
||||
event = "msg_show",
|
||||
min_height = 10,
|
||||
["not"] = { kind = { "search_count", "echo" } },
|
||||
}
|
||||
<
|
||||
|
||||
|
||||
VIEWS *noice.nvim-noice-(nice,-noise,-notice)-views*
|
||||
|
||||
**Noice** comes with the following built-in backends:
|
||||
|
||||
- **popup**powered by nui.nvim <https://github.com/MunifTanjim/nui.nvim>
|
||||
- **split**powered by nui.nvim <https://github.com/MunifTanjim/nui.nvim>
|
||||
- **notify**powered by nvim-notify <https://github.com/rcarriga/nvim-notify>
|
||||
- **virtualtext**shows the message as virtualtext (for example for `search_count`)
|
||||
- **mini**similar to notifier.nvim <https://github.com/vigoux/notifier.nvim> & fidget.nvim <https://github.com/j-hui/fidget.nvim>
|
||||
- **notify_send**generate a desktop notification
|
||||
|
||||
A **View** (`config.views`) is a combination of a `backend` and options.
|
||||
**Noice** comes with the following built-in views with sane defaults:
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
View Backend Description
|
||||
---------------- ---------- ----------------------------------------------------
|
||||
notify notify nvim-notify with level=nil, replace=false,
|
||||
merge=false
|
||||
|
||||
split split horizontal split
|
||||
|
||||
vsplit split vertical split
|
||||
|
||||
popup popup simple popup
|
||||
|
||||
mini mini minimal view, by default bottom right, right-aligned
|
||||
|
||||
cmdline popup bottom line, similar to the classic cmdline
|
||||
|
||||
cmdline_popup popup fancy cmdline popup, with different styles according
|
||||
to the cmdline mode
|
||||
|
||||
cmdline_output split split used by config.presets.cmdline_output_to_split
|
||||
|
||||
messages split split used for :messages
|
||||
|
||||
confirm popup popup used for confirm events
|
||||
|
||||
hover popup popup used for lsp signature help and hover
|
||||
|
||||
popupmenu nui.menu special view with the options used to render the
|
||||
popupmenu when backend is nui
|
||||
--------------------------------------------------------------------------------
|
||||
Please refer to noice.config.views
|
||||
<https://github.com/folke/noice.nvim/blob/main/lua/noice/config/views.lua> 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.
|
||||
|
||||
Example: ~
|
||||
|
||||
>lua
|
||||
-- override the default split view to always enter the split when it opens
|
||||
require("noice").setup({
|
||||
views = {
|
||||
split = {
|
||||
enter = true,
|
||||
},
|
||||
},
|
||||
})
|
||||
<
|
||||
|
||||
|
||||
All built-in Noice views have the filetype `noice`
|
||||
|
||||
NUI OPTIONS ~
|
||||
|
||||
See the Nui documentation for Popup
|
||||
<https://github.com/MunifTanjim/nui.nvim/tree/main/lua/nui/popup> and Split
|
||||
<https://github.com/MunifTanjim/nui.nvim/tree/main/lua/nui/split>.
|
||||
|
||||
OptionDescriptionsize, positionSize, position and their constituents can additionally be specified as "auto", to use the message height and width.win_options.winhighlightString or can also be a table like:
|
||||
|
||||
>lua
|
||||
{
|
||||
win_options = {
|
||||
winhighlight = {
|
||||
Normal = "NormalFloat",
|
||||
FloatBorder = "FloatBorder"
|
||||
},
|
||||
}
|
||||
}
|
||||
<
|
||||
|
||||
scrollbarSet to false to hide the scrollbar.
|
||||
NOTIFY OPTIONS ~
|
||||
|
||||
-------------------------------------------------------------------------------------------------
|
||||
Option Type Default Description
|
||||
--------- ---------------- ---------------- -----------------------------------------------------
|
||||
title string "Notification" title to be used for the notification. Uses
|
||||
Message.title if available.
|
||||
|
||||
replace boolean false when true, messages routing to the same notify
|
||||
instance will replace existing messages instead of
|
||||
pushing a new notification every time
|
||||
|
||||
merge boolean false Merge messages into one Notification or create
|
||||
separate notifications
|
||||
|
||||
level number\|string nil notification 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 *noice.nvim-noice-(nice,-noise,-notice)-formatting*
|
||||
|
||||
Formatting options can be specified with `config.format`. For a list of the
|
||||
defaults, please refer to config.format
|
||||
<https://github.com/folke/noice.nvim/blob/main/lua/noice/config/format.lua>
|
||||
|
||||
**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
|
||||
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 *noice.nvim-noice-(nice,-noise,-notice)-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:
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
Option Type Default Description
|
||||
-------- --------- --------- -------------------------------------------------------------
|
||||
skip boolean false messages matching this filter will be skipped and not shown
|
||||
in any views
|
||||
|
||||
stop boolean true When 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
|
||||
<https://github.com/folke/noice.nvim/blob/main/lua/noice/config/routes.lua> for
|
||||
an overview of the default routes. **Routes** passed to `setup()` will be
|
||||
prepended to the default routes.
|
||||
|
||||
Example ~
|
||||
|
||||
>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 },
|
||||
},
|
||||
},
|
||||
})
|
||||
<
|
||||
|
||||
|
||||
STATUSLINE COMPONENTS*noice.nvim-noice-(nice,-noise,-notice)-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
|
||||
<https://github.com/folke/noice.nvim/blob/main/lua/noice/config/status.lua> 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
|
||||
|
||||
Example of configuring lualine.nvim ~
|
||||
|
||||
>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" },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
<
|
||||
|
||||
|
||||
TELESCOPE *noice.nvim-noice-(nice,-noise,-notice)-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")
|
||||
<
|
||||
|
||||
|
||||
USAGE *noice.nvim-noice-(nice,-noise,-notice)-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 *noice.nvim-noice-(nice,-noise,-notice)-highlight-groups*
|
||||
|
||||
Click to see all highlight groups ~
|
||||
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Highlight Group Default Group Description
|
||||
------------------------------------ -------------------------------- -----------------------------
|
||||
NoiceCmdline MsgArea Normal for the classic
|
||||
cmdline area at the bottom”
|
||||
|
||||
NoiceCmdlineIcon DiagnosticSignInfo Cmdline icon
|
||||
|
||||
NoiceCmdlineIconCalculator NoiceCmdlineIcon
|
||||
|
||||
NoiceCmdlineIconCmdline NoiceCmdlineIcon
|
||||
|
||||
NoiceCmdlineIconFilter NoiceCmdlineIcon
|
||||
|
||||
NoiceCmdlineIconHelp NoiceCmdlineIcon
|
||||
|
||||
NoiceCmdlineIconIncRename NoiceCmdlineIcon
|
||||
|
||||
NoiceCmdlineIconInput NoiceCmdlineIcon
|
||||
|
||||
NoiceCmdlineIconLua NoiceCmdlineIcon
|
||||
|
||||
NoiceCmdlineIconSearch DiagnosticSignWarn Cmdline search icon (/ and ?)
|
||||
|
||||
NoiceCmdlinePopup Normal Normal for the cmdline popup
|
||||
|
||||
NoiceCmdlinePopupBorder DiagnosticSignInfo Cmdline popup border
|
||||
|
||||
NoiceCmdlinePopupBorderCalculator NoiceCmdlinePopupBorder
|
||||
|
||||
NoiceCmdlinePopupBorderCmdline NoiceCmdlinePopupBorder
|
||||
|
||||
NoiceCmdlinePopupBorderFilter NoiceCmdlinePopupBorder
|
||||
|
||||
NoiceCmdlinePopupBorderHelp NoiceCmdlinePopupBorder
|
||||
|
||||
NoiceCmdlinePopupBorderIncRename NoiceCmdlinePopupBorder
|
||||
|
||||
NoiceCmdlinePopupBorderInput NoiceCmdlinePopupBorder
|
||||
|
||||
NoiceCmdlinePopupBorderLua NoiceCmdlinePopupBorder
|
||||
|
||||
NoiceCmdlinePopupBorderSearch DiagnosticSignWarn Cmdline popup border for
|
||||
search
|
||||
|
||||
NoiceCmdlinePopupTitle DiagnosticSignInfo Cmdline popup border
|
||||
|
||||
NoiceCmdlinePrompt Title prompt for input()
|
||||
|
||||
NoiceCompletionItemKindClass NoiceCompletionItemKindDefault
|
||||
|
||||
NoiceCompletionItemKindColor NoiceCompletionItemKindDefault
|
||||
|
||||
NoiceCompletionItemKindConstant NoiceCompletionItemKindDefault
|
||||
|
||||
NoiceCompletionItemKindConstructor NoiceCompletionItemKindDefault
|
||||
|
||||
NoiceCompletionItemKindDefault Special
|
||||
|
||||
NoiceCompletionItemKindEnum NoiceCompletionItemKindDefault
|
||||
|
||||
NoiceCompletionItemKindEnumMember NoiceCompletionItemKindDefault
|
||||
|
||||
NoiceCompletionItemKindField NoiceCompletionItemKindDefault
|
||||
|
||||
NoiceCompletionItemKindFile NoiceCompletionItemKindDefault
|
||||
|
||||
NoiceCompletionItemKindFolder NoiceCompletionItemKindDefault
|
||||
|
||||
NoiceCompletionItemKindFunction NoiceCompletionItemKindDefault
|
||||
|
||||
NoiceCompletionItemKindInterface NoiceCompletionItemKindDefault
|
||||
|
||||
NoiceCompletionItemKindKeyword NoiceCompletionItemKindDefault
|
||||
|
||||
NoiceCompletionItemKindMethod NoiceCompletionItemKindDefault
|
||||
|
||||
NoiceCompletionItemKindModule NoiceCompletionItemKindDefault
|
||||
|
||||
NoiceCompletionItemKindProperty NoiceCompletionItemKindDefault
|
||||
|
||||
NoiceCompletionItemKindSnippet NoiceCompletionItemKindDefault
|
||||
|
||||
NoiceCompletionItemKindStruct NoiceCompletionItemKindDefault
|
||||
|
||||
NoiceCompletionItemKindText NoiceCompletionItemKindDefault
|
||||
|
||||
NoiceCompletionItemKindUnit NoiceCompletionItemKindDefault
|
||||
|
||||
NoiceCompletionItemKindValue NoiceCompletionItemKindDefault
|
||||
|
||||
NoiceCompletionItemKindVariable NoiceCompletionItemKindDefault
|
||||
|
||||
NoiceCompletionItemMenu none Normal for the popupmenu
|
||||
|
||||
NoiceCompletionItemWord none Normal for the popupmenu
|
||||
|
||||
NoiceConfirm Normal Normal for the confirm view
|
||||
|
||||
NoiceConfirmBorder DiagnosticSignInfo Border for the confirm view
|
||||
|
||||
NoiceCursor Cursor Fake Cursor
|
||||
|
||||
NoiceFormatConfirm CursorLine
|
||||
|
||||
NoiceFormatConfirmDefault Visual
|
||||
|
||||
NoiceFormatDate Special
|
||||
|
||||
NoiceFormatEvent NonText
|
||||
|
||||
NoiceFormatKind NonText
|
||||
|
||||
NoiceFormatLevelDebug NonText
|
||||
|
||||
NoiceFormatLevelError DiagnosticVirtualTextError
|
||||
|
||||
NoiceFormatLevelInfo DiagnosticVirtualTextInfo
|
||||
|
||||
NoiceFormatLevelOff NonText
|
||||
|
||||
NoiceFormatLevelTrace NonText
|
||||
|
||||
NoiceFormatLevelWarn DiagnosticVirtualTextWarn
|
||||
|
||||
NoiceFormatProgressDone Search Progress bar done
|
||||
|
||||
NoiceFormatProgressTodo CursorLine progress bar todo
|
||||
|
||||
NoiceFormatTitle Title
|
||||
|
||||
NoiceLspProgressClient Title Lsp progress client name
|
||||
|
||||
NoiceLspProgressSpinner Constant Lsp progress spinner
|
||||
|
||||
NoiceLspProgressTitle NonText Lsp progress title
|
||||
|
||||
NoiceMini MsgArea Normal for mini view
|
||||
|
||||
NoicePopup NormalFloat Normal for popup views
|
||||
|
||||
NoicePopupBorder FloatBorder Border for popup views
|
||||
|
||||
NoicePopupmenu Pmenu Normal for the popupmenu
|
||||
|
||||
NoicePopupmenuBorder FloatBorder Popupmenu border
|
||||
|
||||
NoicePopupmenuMatch Special Part of the item that matches
|
||||
the input
|
||||
|
||||
NoicePopupmenuSelected PmenuSel Selected item in the
|
||||
popupmenu
|
||||
|
||||
NoiceScrollbar PmenuSbar Normal for scrollbar
|
||||
|
||||
NoiceScrollbarThumb PmenuThumb Scrollbar thumb
|
||||
|
||||
NoiceSplit NormalFloat Normal for split views
|
||||
|
||||
NoiceSplitBorder FloatBorder Border for split views
|
||||
|
||||
NoiceVirtualText DiagnosticVirtualTextInfo Default hl group for
|
||||
virtualtext views
|
||||
---------------------------------------------------------------------------------------------------
|
||||
==============================================================================
|
||||
2. Links *noice.nvim-links*
|
||||
|
||||
1. *image*: https://user-images.githubusercontent.com/292349/193263220-791847b2-516c-4f23-9802-31dd6bec5f6a.png
|
||||
2. *@recording*:
|
||||
|
||||
Generated by panvimdoc <https://github.com/kdheepak/panvimdoc>
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
Reference in New Issue
Block a user