mirror of
https://github.com/nix-community/nixvim.git
synced 2025-11-08 19:46:06 +01:00
We used to only think of it as the plugin repo's name, but we have been needing to use it for the name of the plugin's packpath location.
120 lines
3.1 KiB
Nix
120 lines
3.1 KiB
Nix
{ lib, ... }:
|
|
let
|
|
inherit (lib.nixvim) defaultNullOpts;
|
|
in
|
|
lib.nixvim.neovim-plugin.mkNeovimPlugin {
|
|
name = "navic";
|
|
packPathName = "nvim-navic";
|
|
luaName = "nvim-navic";
|
|
package = "nvim-navic";
|
|
|
|
maintainers = [ lib.maintainers.khaneliman ];
|
|
|
|
# TODO: added 2024-09-03 remove after 24.11
|
|
deprecateExtraOptions = true;
|
|
optionsRenamedToSettings = [
|
|
"icons"
|
|
[
|
|
"lsp"
|
|
"autoAttach"
|
|
]
|
|
[
|
|
"lsp"
|
|
"preference"
|
|
]
|
|
"highlight"
|
|
"separator"
|
|
"depthLimit"
|
|
"depthLimitIndicator"
|
|
"safeOutput"
|
|
"lazyUpdateContext"
|
|
"click"
|
|
];
|
|
|
|
settingsOptions = {
|
|
icons = lib.mapAttrs (name: default: defaultNullOpts.mkStr default "icon for ${name}.") {
|
|
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 = defaultNullOpts.mkBool false ''
|
|
Enable to have nvim-navic automatically attach to every LSP for current buffer. Its disabled by default.
|
|
'';
|
|
|
|
preference = defaultNullOpts.mkListOf' {
|
|
type = lib.types.str;
|
|
pluginDefault = [ ];
|
|
example = [
|
|
"clangd"
|
|
"pyright"
|
|
];
|
|
description = ''
|
|
Table ranking lsp_servers. Lower the index, higher the priority of the server. If there are more than one server attached to a buffer. In the example below will prefer clangd over pyright
|
|
'';
|
|
};
|
|
};
|
|
|
|
highlight = defaultNullOpts.mkBool false ''
|
|
If set to true, will add colors to icons and text as defined by highlight groups NavicIcons* (NavicIconsFile, NavicIconsModule.. etc.), NavicText and NavicSeparator.
|
|
'';
|
|
|
|
separator = defaultNullOpts.mkStr " > " ''
|
|
Icon to separate items. to use between items.
|
|
'';
|
|
|
|
depth_limit = defaultNullOpts.mkInt 0 ''
|
|
Maximum depth of context to be shown. If the context hits this depth limit, it is truncated.
|
|
'';
|
|
|
|
depth_limit_indicator = defaultNullOpts.mkStr ".." ''
|
|
Icon to indicate that depth_limit was hit and the shown context is truncated.
|
|
'';
|
|
|
|
safe_output = defaultNullOpts.mkBool true ''
|
|
Sanitize the output for use in statusline and winbar.
|
|
'';
|
|
|
|
lazy_update_context = defaultNullOpts.mkBool false ''
|
|
If true, turns off context updates for the "CursorMoved" event.
|
|
'';
|
|
|
|
click = defaultNullOpts.mkBool false ''
|
|
Single click to goto element, double click to open nvim-navbuddy on the clicked element.
|
|
'';
|
|
};
|
|
|
|
settingsExample = {
|
|
lsp = {
|
|
auto_attach = true;
|
|
preference = [
|
|
"clangd"
|
|
"tsserver"
|
|
];
|
|
};
|
|
};
|
|
}
|