Skip to content

Commit

Permalink
plugins/smartcolumn: init
Browse files Browse the repository at this point in the history
  • Loading branch information
khaneliman committed Sep 15, 2024
1 parent fcb782c commit accf5e6
Show file tree
Hide file tree
Showing 2 changed files with 147 additions and 0 deletions.
80 changes: 80 additions & 0 deletions plugins/by-name/smartcolumn/default.nix
Original file line number Diff line number Diff line change
@@ -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";
};
}
67 changes: 67 additions & 0 deletions tests/test-sources/plugins/by-name/smartcolumn/default.nix
Original file line number Diff line number Diff line change
@@ -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
'';
};
};
}

0 comments on commit accf5e6

Please sign in to comment.