mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-22 00:48:58 +02:00
87 lines
2.3 KiB
Nix
87 lines
2.3 KiB
Nix
|
{
|
||
|
lib,
|
||
|
helpers,
|
||
|
config,
|
||
|
pkgs,
|
||
|
...
|
||
|
}:
|
||
|
helpers.neovim-plugin.mkNeovimPlugin config {
|
||
|
name = "otter";
|
||
|
originalName = "otter.nvim";
|
||
|
defaultPackage = pkgs.vimPlugins.otter-nvim;
|
||
|
|
||
|
maintainers = [ lib.maintainers.perchun ];
|
||
|
|
||
|
settingsOptions = {
|
||
|
lsp = {
|
||
|
hover = {
|
||
|
border = helpers.defaultNullOpts.mkListOf lib.types.str [
|
||
|
"╭"
|
||
|
"─"
|
||
|
"╮"
|
||
|
"│"
|
||
|
"╯"
|
||
|
"─"
|
||
|
"╰"
|
||
|
"│"
|
||
|
] "";
|
||
|
};
|
||
|
|
||
|
diagnostic_update_events = helpers.defaultNullOpts.mkListOf' {
|
||
|
type = lib.types.str;
|
||
|
pluginDefault = [ "BufWritePost" ];
|
||
|
description = ''
|
||
|
`:h events` that cause the diagnostics to update.
|
||
|
|
||
|
See example for less performant but more instant diagnostic updates.
|
||
|
'';
|
||
|
example = [
|
||
|
"BufWritePost"
|
||
|
"InsertLeave"
|
||
|
"TextChanged"
|
||
|
];
|
||
|
};
|
||
|
};
|
||
|
|
||
|
buffers = {
|
||
|
set_filetype = helpers.defaultNullOpts.mkBool false ''
|
||
|
If set to true, the filetype of the otterbuffers will be set.
|
||
|
Otherwise only the autocommand of lspconfig that attaches
|
||
|
the language server will be executed without setting the filetype.
|
||
|
'';
|
||
|
|
||
|
write_to_disk = helpers.defaultNullOpts.mkBool false ''
|
||
|
Write `<path>.otter.<embedded language extension>` files
|
||
|
to disk on save of main buffer.
|
||
|
Useful for some linters that require actual files,
|
||
|
otter files are deleted on quit or main buffer close.
|
||
|
'';
|
||
|
};
|
||
|
|
||
|
strip_wrapping_quote_characters = helpers.defaultNullOpts.mkListOf lib.types.str [
|
||
|
"'"
|
||
|
"\""
|
||
|
"\`"
|
||
|
] "";
|
||
|
|
||
|
handle_leading_whitespace = helpers.defaultNullOpts.mkBool false ''
|
||
|
Otter may not work the way you expect when entire code blocks are indented (eg. in Org files).
|
||
|
When true, otter handles these cases fully. This is a (minor) performance hit.
|
||
|
'';
|
||
|
};
|
||
|
|
||
|
extraOptions = {
|
||
|
addCmpSources = lib.mkOption {
|
||
|
type = lib.types.bool;
|
||
|
default = true;
|
||
|
description = ''
|
||
|
Automatically add otter to cmp sources, as it is required for some functionality.
|
||
|
'';
|
||
|
};
|
||
|
};
|
||
|
|
||
|
extraConfig = cfg: {
|
||
|
plugins.cmp.settings.sources = lib.mkIf cfg.addCmpSources [ { name = "otter"; } ];
|
||
|
};
|
||
|
}
|