plugins/smartcolumn: init

This commit is contained in:
Austin Horstman 2024-09-15 15:50:04 -05:00
parent fcb782cd9c
commit accf5e67b1
No known key found for this signature in database
2 changed files with 147 additions and 0 deletions

View file

@ -0,0 +1,80 @@
{
lib,
...
}:
let
inherit (lib.nixvim) defaultNullOpts;
inherit (lib) types;
in
lib.nixvim.neovim-plugin.mkNeovimPlugin {
name = "smartcolumn";
originalName = "smartcolumn.nvim";
package = "smartcolumn-nvim";
maintainers = [ lib.maintainers.khaneliman ];
settingsOptions = {
colorcolumn = defaultNullOpts.mkNullable (with types; either str (listOf str)) "80" ''
Column with to highlight.
Supports multiple values for more column highlights.
'';
disabled_filetypes =
defaultNullOpts.mkListOf types.str
[
"help"
"text"
"markdown"
]
''
Filetypes that colorcolumn highlighting will not be displayed.
'';
scope =
defaultNullOpts.mkEnumFirstDefault
[
"file"
"window"
"line"
]
''
The scope to check for column width and highlight.
'';
custom_colorcolumn = defaultNullOpts.mkAttrsOf types.anything { } ''
Custom colorcolumn definitions for different filetypes.
'';
};
settingsExample = {
colorcolumn = "100";
disabled_filetypes = [
"checkhealth"
"help"
"lspinfo"
"markdown"
"neo-tree"
"noice"
"text"
];
custom_colorcolumn = {
go = [
"100"
"130"
];
java = [
"100"
"140"
];
nix = [
"100"
"120"
];
rust = [
"80"
"100"
];
};
scope = "window";
};
}

View file

@ -0,0 +1,67 @@
{
empty = {
plugins.smartcolumn.enable = true;
};
default = {
plugins.smartcolumn = {
settings = {
colorcolumn = "80";
disabled_filetypes = [
"help"
"text"
"markdown"
];
scope = "file";
custom_colorcolumn = { };
};
};
};
example = {
plugins.smartcolumn = {
settings = {
colorcolumn = "100";
disabled_filetypes = [
"checkhealth"
"help"
"lspinfo"
"markdown"
"neo-tree"
"noice"
"text"
];
custom_colorcolumn = {
go = [
"100"
"130"
];
java = [
"100"
"140"
];
nix = [
"100"
"120"
];
rust = [
"80"
"100"
];
};
scope = "window";
};
};
};
function-colorcolumn = {
plugins.smartcolumn = {
settings.custom_colorcolumn.__raw = ''
-- Supports custom logic from a function
function ()
return "100"
end
'';
};
};
}