mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-30 04:14:28 +02: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.
190 lines
4.2 KiB
Nix
190 lines
4.2 KiB
Nix
{ lib, ... }:
|
|
let
|
|
inherit (lib.nixvim) defaultNullOpts;
|
|
in
|
|
lib.nixvim.neovim-plugin.mkNeovimPlugin {
|
|
name = "barbecue";
|
|
packPathName = "barbecue.nvim";
|
|
package = "barbecue-nvim";
|
|
|
|
maintainers = [ lib.maintainers.khaneliman ];
|
|
|
|
# TODO: added 2024-09-03 remove after 24.11
|
|
optionsRenamedToSettings = [
|
|
"attachNavic"
|
|
"createAutocmd"
|
|
"includeBuftypes"
|
|
"excludeFiletypes"
|
|
[
|
|
"modifiers"
|
|
"dirname"
|
|
]
|
|
[
|
|
"modifiers"
|
|
"basename"
|
|
]
|
|
"showDirname"
|
|
"showBasename"
|
|
"showModified"
|
|
"modified"
|
|
"showNavic"
|
|
"leadCustomSection"
|
|
"customSection"
|
|
"theme"
|
|
"contextFollowIconColor"
|
|
[
|
|
"symbols"
|
|
"modified"
|
|
]
|
|
[
|
|
"symbols"
|
|
"ellipsis"
|
|
]
|
|
[
|
|
"symbols"
|
|
"separator"
|
|
]
|
|
"kinds"
|
|
];
|
|
|
|
settingsOptions = {
|
|
attach_navic = defaultNullOpts.mkBool true ''
|
|
Whether to attach navic to language servers automatically.
|
|
'';
|
|
|
|
create_autocmd = defaultNullOpts.mkBool true ''
|
|
Whether to create winbar updater autocmd.
|
|
'';
|
|
|
|
include_buftypes = defaultNullOpts.mkListOf lib.types.str [ "" ] ''
|
|
Buftypes to enable winbar in.
|
|
'';
|
|
|
|
exclude_filetypes =
|
|
defaultNullOpts.mkListOf lib.types.str
|
|
[
|
|
"netrw"
|
|
"toggleterm"
|
|
]
|
|
''
|
|
Filetypes not to enable winbar in.
|
|
'';
|
|
|
|
modifiers = {
|
|
dirname = defaultNullOpts.mkStr ":~:." ''
|
|
Filename modifiers applied to dirname.
|
|
|
|
See: `:help filename-modifiers`
|
|
'';
|
|
|
|
basename = defaultNullOpts.mkStr "" ''
|
|
Filename modifiers applied to basename.
|
|
|
|
See: `:help filename-modifiers`
|
|
'';
|
|
};
|
|
|
|
show_dirname = defaultNullOpts.mkBool true ''
|
|
Whether to display path to file.
|
|
'';
|
|
|
|
show_basename = defaultNullOpts.mkBool true ''
|
|
Whether to display file name.
|
|
'';
|
|
|
|
show_modified = defaultNullOpts.mkBool false ''
|
|
Whether to replace file icon with the modified symbol when buffer is modified.
|
|
'';
|
|
|
|
modified =
|
|
defaultNullOpts.mkLuaFn
|
|
''
|
|
function(bufnr)
|
|
return vim.bo[bufnr].modified
|
|
end
|
|
''
|
|
''
|
|
Get modified status of file.
|
|
NOTE: This can be used to get file modified status from SCM (e.g. git)
|
|
'';
|
|
|
|
show_navic = defaultNullOpts.mkBool true ''
|
|
Whether to show/use navic in the winbar.
|
|
'';
|
|
|
|
lead_custom_section =
|
|
defaultNullOpts.mkLuaFn
|
|
''
|
|
function()
|
|
return " "
|
|
end
|
|
''
|
|
''
|
|
Get leading custom section contents.
|
|
NOTE: This function shouldn't do any expensive actions as it is run on each render.
|
|
'';
|
|
|
|
custom_section =
|
|
defaultNullOpts.mkLuaFn
|
|
''
|
|
function()
|
|
return " "
|
|
end
|
|
''
|
|
''
|
|
Get custom section contents.
|
|
NOTE: This function shouldn't do any expensive actions as it is run on each render.
|
|
'';
|
|
|
|
theme = defaultNullOpts.mkStr "auto" ''
|
|
Theme to be used for generating highlight groups dynamically.
|
|
'';
|
|
|
|
context_follow_icon_color = defaultNullOpts.mkBool false ''
|
|
Whether context text should follow its icon's color.
|
|
'';
|
|
|
|
symbols = {
|
|
modified = defaultNullOpts.mkStr "●" ''
|
|
Modification indicator.
|
|
'';
|
|
|
|
ellipsis = defaultNullOpts.mkStr "…" ''
|
|
Truncation indicator.
|
|
'';
|
|
|
|
separator = defaultNullOpts.mkStr "" ''
|
|
Entry separator.
|
|
'';
|
|
};
|
|
|
|
kinds = 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 = "";
|
|
};
|
|
};
|
|
}
|