mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 08:35:43 +02:00
plugins/barbecue: migrate to mkNeovimPlugin
This commit is contained in:
parent
279258294b
commit
c8bb7880bf
2 changed files with 121 additions and 119 deletions
|
@ -1,35 +1,71 @@
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
helpers,
|
|
||||||
config,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib;
|
|
||||||
let
|
let
|
||||||
cfg = config.plugins.barbecue;
|
inherit (lib.nixvim) defaultNullOpts;
|
||||||
mkListStr = helpers.defaultNullOpts.mkNullable (types.listOf types.str);
|
|
||||||
in
|
in
|
||||||
{
|
lib.nixvim.neovim-plugin.mkNeovimPlugin {
|
||||||
options.plugins.barbecue = helpers.neovim-plugin.extraOptionsOptions // {
|
name = "barbecue";
|
||||||
enable = mkEnableOption "barbecue-nvim";
|
originalName = "barbecue.nvim";
|
||||||
|
defaultPackage = pkgs.vimPlugins.barbecue-nvim;
|
||||||
|
|
||||||
package = helpers.mkPluginPackageOption "barbecue-nvim" pkgs.vimPlugins.barbecue-nvim;
|
maintainers = [ lib.maintainers.khaneliman ];
|
||||||
|
|
||||||
attachNavic = helpers.defaultNullOpts.mkBool true ''
|
# 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.
|
Whether to attach navic to language servers automatically.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
createAutocmd = helpers.defaultNullOpts.mkBool true ''
|
create_autocmd = defaultNullOpts.mkBool true ''
|
||||||
Whether to create winbar updater autocmd.
|
Whether to create winbar updater autocmd.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
includeBuftypes = mkListStr [ "" ] ''
|
include_buftypes = defaultNullOpts.mkListOf lib.types.str [ "" ] ''
|
||||||
Buftypes to enable winbar in.
|
Buftypes to enable winbar in.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
excludeFiletypes =
|
exclude_filetypes =
|
||||||
mkListStr
|
defaultNullOpts.mkListOf lib.types.str
|
||||||
[
|
[
|
||||||
"netrw"
|
"netrw"
|
||||||
"toggleterm"
|
"toggleterm"
|
||||||
|
@ -39,33 +75,33 @@ in
|
||||||
'';
|
'';
|
||||||
|
|
||||||
modifiers = {
|
modifiers = {
|
||||||
dirname = helpers.defaultNullOpts.mkStr ":~:." ''
|
dirname = defaultNullOpts.mkStr ":~:." ''
|
||||||
Filename modifiers applied to dirname.
|
Filename modifiers applied to dirname.
|
||||||
|
|
||||||
See: `:help filename-modifiers`
|
See: `:help filename-modifiers`
|
||||||
'';
|
'';
|
||||||
|
|
||||||
basename = helpers.defaultNullOpts.mkStr "" ''
|
basename = defaultNullOpts.mkStr "" ''
|
||||||
Filename modifiers applied to basename.
|
Filename modifiers applied to basename.
|
||||||
|
|
||||||
See: `:help filename-modifiers`
|
See: `:help filename-modifiers`
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
showDirname = helpers.defaultNullOpts.mkBool true ''
|
show_dirname = defaultNullOpts.mkBool true ''
|
||||||
Whether to display path to file.
|
Whether to display path to file.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
showBasename = helpers.defaultNullOpts.mkBool true ''
|
show_basename = defaultNullOpts.mkBool true ''
|
||||||
Whether to display file name.
|
Whether to display file name.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
showModified = helpers.defaultNullOpts.mkBool false ''
|
show_modified = defaultNullOpts.mkBool false ''
|
||||||
Whether to replace file icon with the modified symbol when buffer is modified.
|
Whether to replace file icon with the modified symbol when buffer is modified.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
modified =
|
modified =
|
||||||
helpers.defaultNullOpts.mkLuaFn
|
defaultNullOpts.mkLuaFn
|
||||||
''
|
''
|
||||||
function(bufnr)
|
function(bufnr)
|
||||||
return vim.bo[bufnr].modified
|
return vim.bo[bufnr].modified
|
||||||
|
@ -76,12 +112,12 @@ in
|
||||||
NOTE: This can be used to get file modified status from SCM (e.g. git)
|
NOTE: This can be used to get file modified status from SCM (e.g. git)
|
||||||
'';
|
'';
|
||||||
|
|
||||||
showNavic = helpers.defaultNullOpts.mkBool true ''
|
show_navic = defaultNullOpts.mkBool true ''
|
||||||
Whether to show/use navic in the winbar.
|
Whether to show/use navic in the winbar.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
leadCustomSection =
|
lead_custom_section =
|
||||||
helpers.defaultNullOpts.mkLuaFn
|
defaultNullOpts.mkLuaFn
|
||||||
''
|
''
|
||||||
function()
|
function()
|
||||||
return " "
|
return " "
|
||||||
|
@ -92,8 +128,8 @@ in
|
||||||
NOTE: This function shouldn't do any expensive actions as it is run on each render.
|
NOTE: This function shouldn't do any expensive actions as it is run on each render.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
customSection =
|
custom_section =
|
||||||
helpers.defaultNullOpts.mkLuaFn
|
defaultNullOpts.mkLuaFn
|
||||||
''
|
''
|
||||||
function()
|
function()
|
||||||
return " "
|
return " "
|
||||||
|
@ -104,29 +140,29 @@ in
|
||||||
NOTE: This function shouldn't do any expensive actions as it is run on each render.
|
NOTE: This function shouldn't do any expensive actions as it is run on each render.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
theme = helpers.defaultNullOpts.mkStr "auto" ''
|
theme = defaultNullOpts.mkStr "auto" ''
|
||||||
Theme to be used for generating highlight groups dynamically.
|
Theme to be used for generating highlight groups dynamically.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
contextFollowIconColor = helpers.defaultNullOpts.mkBool false ''
|
context_follow_icon_color = defaultNullOpts.mkBool false ''
|
||||||
Whether context text should follow its icon's color.
|
Whether context text should follow its icon's color.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
symbols = {
|
symbols = {
|
||||||
modified = helpers.defaultNullOpts.mkStr "●" ''
|
modified = defaultNullOpts.mkStr "●" ''
|
||||||
Modification indicator.
|
Modification indicator.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
ellipsis = helpers.defaultNullOpts.mkStr "…" ''
|
ellipsis = defaultNullOpts.mkStr "…" ''
|
||||||
Truncation indicator.
|
Truncation indicator.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
separator = helpers.defaultNullOpts.mkStr "" ''
|
separator = defaultNullOpts.mkStr "" ''
|
||||||
Entry separator.
|
Entry separator.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
kinds = mapAttrs (name: default: helpers.defaultNullOpts.mkStr default "icon for ${name}.") {
|
kinds = lib.mapAttrs (name: default: defaultNullOpts.mkStr default "icon for ${name}.") {
|
||||||
File = "";
|
File = "";
|
||||||
Module = "";
|
Module = "";
|
||||||
Namespace = "";
|
Namespace = "";
|
||||||
|
@ -155,40 +191,4 @@ in
|
||||||
TypeParameter = "";
|
TypeParameter = "";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config =
|
|
||||||
let
|
|
||||||
setupOptions =
|
|
||||||
with cfg;
|
|
||||||
{
|
|
||||||
attach_navic = attachNavic;
|
|
||||||
create_autocmd = createAutocmd;
|
|
||||||
include_buftypes = includeBuftypes;
|
|
||||||
exclude_filetypes = excludeFiletypes;
|
|
||||||
modifiers = {
|
|
||||||
inherit (modifiers) dirname basename;
|
|
||||||
};
|
|
||||||
show_dirname = showDirname;
|
|
||||||
show_basename = showBasename;
|
|
||||||
show_modified = showModified;
|
|
||||||
inherit modified;
|
|
||||||
show_navic = showNavic;
|
|
||||||
lead_custom_section = leadCustomSection;
|
|
||||||
custom_section = customSection;
|
|
||||||
inherit theme;
|
|
||||||
context_follow_icon_color = contextFollowIconColor;
|
|
||||||
symbols = {
|
|
||||||
inherit (symbols) modified ellipsis separator;
|
|
||||||
};
|
|
||||||
inherit kinds;
|
|
||||||
}
|
|
||||||
// cfg.extraOptions;
|
|
||||||
in
|
|
||||||
mkIf cfg.enable {
|
|
||||||
extraPlugins = [ cfg.package ];
|
|
||||||
|
|
||||||
extraConfigLua = ''
|
|
||||||
require('barbecue').setup(${helpers.toLuaObject setupOptions})
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,10 +7,11 @@
|
||||||
plugins.barbecue = {
|
plugins.barbecue = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
attachNavic = true;
|
settings = {
|
||||||
createAutocmd = true;
|
attach_navic = true;
|
||||||
includeBuftypes = [ "" ];
|
create_autocmd = true;
|
||||||
excludeFiletypes = [
|
include_buftypes = [ "" ];
|
||||||
|
exclude_filetypes = [
|
||||||
"netrw"
|
"netrw"
|
||||||
"toggleterm"
|
"toggleterm"
|
||||||
];
|
];
|
||||||
|
@ -18,15 +19,15 @@
|
||||||
dirname = ":~:.";
|
dirname = ":~:.";
|
||||||
basename = "";
|
basename = "";
|
||||||
};
|
};
|
||||||
showDirname = true;
|
show_dirname = true;
|
||||||
showBasename = true;
|
show_basename = true;
|
||||||
showModified = true;
|
show_modified = true;
|
||||||
modified = "function(bufnr) return vim.bo[bufnr].modified end";
|
modified = "function(bufnr) return vim.bo[bufnr].modified end";
|
||||||
showNavic = true;
|
show_navic = true;
|
||||||
leadCustomSection = ''function() return " " end'';
|
lead_custom_section = ''function() return " " end'';
|
||||||
customSection = ''function() return " " end'';
|
custom_section = ''function() return " " end'';
|
||||||
theme = "auto";
|
theme = "auto";
|
||||||
contextFollowIconColor = true;
|
context_follow_icon_color = true;
|
||||||
symbols = {
|
symbols = {
|
||||||
modified = "M";
|
modified = "M";
|
||||||
ellipsis = "///";
|
ellipsis = "///";
|
||||||
|
@ -62,4 +63,5 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue