nix-community.nixvim/plugins/by-name/precognition/default.nix
Austin Horstman a7012e7864
treewide: originalName -> packPathName
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.
2024-12-13 21:29:00 -06:00

132 lines
3 KiB
Nix

{
lib,
...
}:
let
inherit (lib.nixvim) defaultNullOpts;
inherit (lib) types;
in
lib.nixvim.neovim-plugin.mkNeovimPlugin {
name = "precognition";
packPathName = "precognition.nvim";
package = "precognition-nvim";
maintainers = [ lib.maintainers.khaneliman ];
settingsOptions = {
startVisible = defaultNullOpts.mkBool true ''
Whether to show precognition.nvim on startup.
'';
showBlankVirtLine = defaultNullOpts.mkBool true ''
Setting this option will mean that if a Virtual Line would be blank it won't be rendered.
'';
disabled_fts = defaultNullOpts.mkListOf types.str [
"startify"
] "`precognition.nvim` is disabled under these filetypes.";
highlightColor =
defaultNullOpts.mkAttrsOf types.anything
{
link = "Comment";
}
''
Highlight groups for the hints.
Can be defined as either:
- As a table containing a link property pointing to an existing highlight group.
- As a table specifying custom highlight values, such as foreground and background colors.
'';
hints =
defaultNullOpts.mkAttrsOf types.anything
{
Caret = {
text = "^";
prio = 2;
};
Dollar = {
text = "$";
prio = 1;
};
MatchingPair = {
text = "%";
prio = 5;
};
Zero = {
text = "0";
prio = 1;
};
w = {
text = "w";
prio = 10;
};
b = {
text = "b";
prio = 9;
};
e = {
text = "e";
prio = 8;
};
W = {
text = "W";
prio = 7;
};
B = {
text = "B";
prio = 6;
};
E = {
text = "E";
prio = 5;
};
}
''
Hints that will be shown on the virtual line.
Priority is used to determine which hint to show when two can be shown at the same spot.
Hints can be hidden by setting their priority to `0`.
If you want to hide the entire virtual line, set all elements to `prio = 0`.
'';
gutterHints =
defaultNullOpts.mkAttrsOf types.anything
{
G = {
text = "G";
prio = 10;
};
gg = {
text = "gg";
prio = 9;
};
PrevParagraph = {
text = "{";
prio = 8;
};
NextParagraph = {
text = "}";
prio = 8;
};
}
''
Hints that will be shown on the gutter.
Hints can be hidden by setting their priority to `0`.
'';
};
settingsExample = {
startVisible = false;
showBlankVirtLine = false;
highlightColor = {
link = "Text";
};
disabled_fts = [
"startify"
"dashboard"
];
};
}