nvim-navic does not alter your statusline or winbar on its own.
Instead, you are provided with these two functions and its left up to you how you want to incorporate this into your setup.
Returns boolean value indicating whether nvim-navic is able to provide
output for current buffer.
nvim-navic が現在のバッファの出力を提供できるかどうかを示す boolean 値を返します。
'bufnr' is optional argument. If bufnr is not provied, current open
buffer is used.
'bufnr' はオプションの引数です。bufnr が提供されない場合、現在のオープンバッファが使用されます。
navic.get_location (opts, bufnr)
Returns a pretty string that shows code context and can be used directly
in statusline or winbar.
コードコンテキストを示す整理された文字列を返し、statusline や winbar で直接使用することができます。
opts テーブルは nvim-navic のオプションのいずれかを上書きするために渡すことができます。
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-setup の opts テーブルと同じテーブル形式に従います。
bufnr 値を渡すと、コードコンテキストを取得するためにどのバッファを使用するかを決定することができます。
省略した場合は、現在のバッファが使用されます。
depth_limit: integer
Maximum depth of context to be shown. If the context depth exceeds
this parameter, context information is truncated. default is infinite
表示するコンテキストの最大深度。コンテキストの深さがこのパラメータを超える場合、
コンテキスト情報は切り捨てられます。デフォルトはinfiniteです。
NOTE: You can set vim.b.navic_lazy_update_context = true
for specific buffers, where you want the the updates to not occur on every CursorMoved event.
It should help if you are facing performance issues in large files. Read the docs for example usage of this variable.
Could be usefull if you are facing performance issues on large files. Example usage
大容量のファイルでパフォーマンスの問題に直面している場合。
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,
})
サンプルだとgroupがありませんが、のほほんと入れとくのもありだと思います😄
extensions/nvim-navic.lua
vim.api.nvim_create_autocmd("BufEnter", {
group = vim.api.nvim_create_augroup('nvim-navic', {}),
callback = function()
if vim.api.nvim_buf_line_count(0) > 10000 then
vim.b.navic_lazy_update_context = true
end
end,
})