Regenerate nvim config
This commit is contained in:
339
config/neovim/store/lazy-plugins/nvim-navic/doc/navic.txt
Normal file
339
config/neovim/store/lazy-plugins/nvim-navic/doc/navic.txt
Normal file
@ -0,0 +1,339 @@
|
||||
*nvim-navic* *navic*
|
||||
|
||||
A simple statusline/winbar component that shows your current code context.
|
||||
Named after the Indian satellite navigation system.
|
||||
|
||||
Requires :
|
||||
- nvim-lspconfig: `https://github.com/neovim/nvim-lspconfig`
|
||||
- Neovim: 0.7 or above
|
||||
|
||||
=============================================================================
|
||||
CONTENTS *navic-components*
|
||||
|
||||
API |navic-api|
|
||||
Usage |navic-usage|
|
||||
Variables |navic-variables|
|
||||
Customisation |navic-customise|
|
||||
Highlights |navic-highlights|
|
||||
|
||||
=============================================================================
|
||||
API *navic-api*
|
||||
|
||||
|nvim-navic| provides the following functions for the user.
|
||||
|
||||
*navic.setup* (opts)
|
||||
Configure |nvim-navic|'s options. See more |navic-configuration|.
|
||||
|
||||
*navic.attach* (client, bufnr)
|
||||
Used to attach |nvim-navic| to lsp server. Pass this function as
|
||||
on_attach while setting up your desired lsp server.
|
||||
|
||||
*navic.is_available* (bufnr)
|
||||
Returns boolean value indicating whether |nvim-navic| is able to provide
|
||||
output for current buffer.
|
||||
'bufnr' is optional argument. If bufnr is not provied, current open
|
||||
buffer is used.
|
||||
|
||||
*navic.get_location* (opts, bufnr)
|
||||
Returns a pretty string that shows code context and can be used directly
|
||||
in statusline or winbar.
|
||||
opts table can be passed to override any of |nvim-navic|'s options.
|
||||
Follows same table format as |navic-setup|'s opts table. You can pass
|
||||
|bufnr| value to determine which buffer is used to get code context. If
|
||||
not provided, the current buffer will be used.
|
||||
|
||||
*navic.get_data* (bufnr)
|
||||
Returns a table of tables representing the current code context. Contains
|
||||
information about the symbol's name, kind, type, scope and its icon at
|
||||
each level. Relation between type and kind is defiend on LSP's website.
|
||||
`https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#symbolKind`
|
||||
'bufnr' is optional argument. If bufnr is not provied, current open
|
||||
buffer is used.
|
||||
|
||||
*navic.format_data* (data, opts)
|
||||
Formats data of the type returned by |navic.get_data| for use in the
|
||||
statusline or winbar. This can be used to modify the raw data before
|
||||
formatting it.
|
||||
|opts| table can be passed to override any of |nvim-navic|'s options.
|
||||
Follows same table format as |navic-setup|'s opts table.
|
||||
|
||||
=============================================================================
|
||||
Usage *navic-usage*
|
||||
|
||||
|nvim-navic| needs to be attached to lsp servers of the buffer to work. Use the
|
||||
|navic.attach| function while setting up lsp servers. You can skip this step
|
||||
if you have enabled auto_attach option during setup.
|
||||
|
||||
NOTE: You can attach to only one lsp server per buffer.
|
||||
|
||||
Example: >lua
|
||||
require("lspconfig").clangd.setup {
|
||||
on_attach = function(client, bufnr)
|
||||
navic.attach(client, bufnr)
|
||||
end
|
||||
}
|
||||
<
|
||||
|
||||
Next you can use |nvim-navic| in your statusline or winbar with your
|
||||
favorite statusline/winbar plugins.
|
||||
|
||||
Example setup with lualine.nvim `https://github.com/nvim-lualine/lualine.nvim`:
|
||||
>lua
|
||||
local navic = require("nvim-navic")
|
||||
|
||||
require("lualine").setup({
|
||||
sections = {
|
||||
lualine_c = {
|
||||
"navic",
|
||||
|
||||
-- Component specific options
|
||||
color_correction = nil, -- Can be nil, "static" or "dynamic". This option is useful only when you have highlights enabled.
|
||||
-- Many colorschemes don't define same backgroud for nvim-navic as their lualine statusline backgroud.
|
||||
-- Setting it to "static" will perform a adjustment once when the component is being setup. This should
|
||||
-- be enough when the lualine section isn't changing colors based on the mode.
|
||||
-- Setting it to "dynamic" will keep updating the highlights according to the current modes colors for
|
||||
-- the current section.
|
||||
|
||||
navic_opts = nil -- lua table with same format as setup's option. All options except "lsp" options take effect when set here.
|
||||
}
|
||||
},
|
||||
-- OR in winbar
|
||||
winbar = {
|
||||
lualine_c = {
|
||||
"navic",
|
||||
color_correction = nil,
|
||||
navic_opts = nil
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
-- OR a more hands on approach
|
||||
require("lualine").setup({
|
||||
sections = {
|
||||
lualine_c = {
|
||||
{
|
||||
function()
|
||||
return navic.get_location()
|
||||
end,
|
||||
cond = function()
|
||||
return navic.is_available()
|
||||
end
|
||||
},
|
||||
}
|
||||
},
|
||||
-- OR in winbar
|
||||
winbar = {
|
||||
lualine_c = {
|
||||
{
|
||||
function()
|
||||
return navic.get_location()
|
||||
end,
|
||||
cond = function()
|
||||
return navic.is_available()
|
||||
end
|
||||
},
|
||||
}
|
||||
}
|
||||
})
|
||||
<
|
||||
|
||||
Example setup with feline.nvim `https://github.com/feline-nvim/feline.nvim`:
|
||||
|
||||
Statusline: >lua
|
||||
local navic = require("nvim-navic")
|
||||
|
||||
local components = {
|
||||
active = {{}, {}, {}},
|
||||
}
|
||||
|
||||
table.insert(components.active[1], {
|
||||
provider = function()
|
||||
return navic.get_location()
|
||||
end,
|
||||
enabled = function() return navic.is_available() end,
|
||||
})
|
||||
|
||||
require("feline").setup({
|
||||
components = components
|
||||
})
|
||||
<
|
||||
|
||||
Winbar: >lua
|
||||
local navic = require("nvim-navic")
|
||||
|
||||
local components = {
|
||||
active = {{}, {}, {}},
|
||||
}
|
||||
|
||||
table.insert(components.active[1], {
|
||||
provider = function()
|
||||
return navic.get_location()
|
||||
end,
|
||||
enabled = function() return navic.is_available() end,
|
||||
})
|
||||
|
||||
require("feline").winbar.setup({
|
||||
components = components
|
||||
})
|
||||
<
|
||||
|
||||
You can silence warning/error messages thrown by |nvim-navic| by setting
|
||||
>lua
|
||||
vim.g.navic_silence = true.
|
||||
<
|
||||
at the start of your config. However this is not advisable, the error
|
||||
messages indicate issues in your setup.
|
||||
|
||||
=============================================================================
|
||||
Variables *navic-variables*
|
||||
|
||||
*vim.g.navic_silence*
|
||||
Set it to true to silence the any warnings/error messages thrown by nvim-navic
|
||||
|
||||
*vim.b.navic_lazy_update_context*
|
||||
Set it to true to update context only on CursorHold event. Could be usefull if
|
||||
you are facing performance issues on large files. Example usage
|
||||
>lua
|
||||
vim.api.nvim_create_autocmd("BufEnter", {
|
||||
callback = function()
|
||||
if vim.api.nvim_buf_line_count(0) > 10000 then
|
||||
vim.b.navic_lazy_update_context = true
|
||||
end
|
||||
end,
|
||||
})
|
||||
<
|
||||
=============================================================================
|
||||
Customisation *navic-customise*
|
||||
|
||||
Use |navic.setup| to override any of the default options
|
||||
|
||||
icons: table
|
||||
Icons to show for captured symbols. Default icons assume that you
|
||||
have nerd-font.
|
||||
|
||||
highlight: boolean
|
||||
Add colors to icons and text as defined by highlight groups
|
||||
NavicIcons* (NavicIconsFile, NavicIconsModule.. etc.), NavicText and
|
||||
NavicSeparator.
|
||||
|
||||
separator: string
|
||||
Icon to be used to separate two symbols.
|
||||
|
||||
depth_limit: integer
|
||||
Maximum depth of context to be shown. If the context depth exceeds
|
||||
this parameter, context information is truncated. default is infinite
|
||||
|
||||
depth_limit_indicator: string
|
||||
Indicator signifing that displayed string is truncated.
|
||||
|
||||
safe_output: boolean
|
||||
Sanitize the output for use in statusline and winbar.
|
||||
|
||||
click: boolean
|
||||
Single click to goto element, double click to open nvim-navbuddy on
|
||||
the clicked element.
|
||||
|
||||
lazy_update_context: boolean
|
||||
If true, turns off context updates for the "CursorMoved" event,
|
||||
updates will only happen on the "CursorHold" event. The
|
||||
difference between this option and the vim.b.navic_lazy_update_context
|
||||
variable is that this option turns off context updates on the
|
||||
"CursorMoved" completely for all buffers, whereas the
|
||||
vim.b.navic_lazy_update_context variable allows you to control that
|
||||
behavior with more flexibility, like disabling context updates
|
||||
depending on file size, total lines etc.
|
||||
|
||||
lsp :
|
||||
auto_attach: boolean
|
||||
Enable to have nvim-navic automatically attach to every LSP for
|
||||
current buffer. Its disabled by default.
|
||||
preference: table
|
||||
Table ranking lsp_servers. Lower the index, higher the priority of
|
||||
the server. If there are more than one server attached to a
|
||||
buffer, nvim-navic will refer to this list to make a decision on
|
||||
which one to use.
|
||||
For example - In case a buffer is attached to clangd and ccls both
|
||||
and the preference list is `{ "clangd", "pyright" }`. Then clangd
|
||||
will be preferred.
|
||||
|
||||
Defaults >lua
|
||||
navic.setup {
|
||||
icons = {
|
||||
File = " ",
|
||||
Module = " ",
|
||||
Namespace = " ",
|
||||
Package = " ",
|
||||
Class = " ",
|
||||
Method = " ",
|
||||
Property = " ",
|
||||
Field = " ",
|
||||
Constructor = " ",
|
||||
Enum = "",
|
||||
Interface = "",
|
||||
Function = " ",
|
||||
Variable = " ",
|
||||
Constant = " ",
|
||||
String = " ",
|
||||
Number = " ",
|
||||
Boolean = "◩ ",
|
||||
Array = " ",
|
||||
Object = " ",
|
||||
Key = " ",
|
||||
Null = " ",
|
||||
EnumMember = " ",
|
||||
Struct = " ",
|
||||
Event = " ",
|
||||
Operator = " ",
|
||||
TypeParameter = " ",
|
||||
},
|
||||
lsp = {
|
||||
auto_attach = false,
|
||||
preference = nil,
|
||||
},
|
||||
highlight = false,
|
||||
separator = " > ",
|
||||
depth_limit = 0,
|
||||
depth_limit_indicator = "..",
|
||||
safe_output = true,
|
||||
lazy_update_context = false,
|
||||
click = false
|
||||
}
|
||||
<
|
||||
|
||||
=============================================================================
|
||||
Highlight *navic-highlights*
|
||||
|
||||
|nvim-navic| provides the following highlights which get used when highlight
|
||||
option is set to `true`.
|
||||
|
||||
`NavicIconsFile`
|
||||
`NavicIconsModule`
|
||||
`NavicIconsNamespace`
|
||||
`NavicIconsPackage`
|
||||
`NavicIconsClass`
|
||||
`NavicIconsMethod`
|
||||
`NavicIconsProperty`
|
||||
`NavicIconsField`
|
||||
`NavicIconsConstructor`
|
||||
`NavicIconsEnum`
|
||||
`NavicIconsInterface`
|
||||
`NavicIconsFunction`
|
||||
`NavicIconsVariable`
|
||||
`NavicIconsConstant`
|
||||
`NavicIconsString`
|
||||
`NavicIconsNumber`
|
||||
`NavicIconsBoolean`
|
||||
`NavicIconsArray`
|
||||
`NavicIconsObject`
|
||||
`NavicIconsKey`
|
||||
`NavicIconsNull`
|
||||
`NavicIconsEnumMember`
|
||||
`NavicIconsStruct`
|
||||
`NavicIconsEvent`
|
||||
`NavicIconsOperator`
|
||||
`NavicIconsTypeParameter`
|
||||
`NavicText`
|
||||
`NavicSeparator`
|
||||
|
||||
=============================================================================
|
||||
vim:tw=78:ts=4:ft=help:norl:
|
||||
Reference in New Issue
Block a user