mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 08:35:43 +02:00
plugins/otter: init
This commit is contained in:
parent
d823c1463e
commit
cd479ec0ef
3 changed files with 126 additions and 0 deletions
|
@ -71,6 +71,7 @@
|
||||||
./languages/nix.nix
|
./languages/nix.nix
|
||||||
./languages/nvim-jdtls.nix
|
./languages/nvim-jdtls.nix
|
||||||
./languages/openscad.nix
|
./languages/openscad.nix
|
||||||
|
./languages/otter.nix
|
||||||
./languages/parinfer-rust.nix
|
./languages/parinfer-rust.nix
|
||||||
./languages/plantuml-syntax.nix
|
./languages/plantuml-syntax.nix
|
||||||
./languages/python/jupytext.nix
|
./languages/python/jupytext.nix
|
||||||
|
|
86
plugins/languages/otter.nix
Normal file
86
plugins/languages/otter.nix
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
{
|
||||||
|
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"; } ];
|
||||||
|
};
|
||||||
|
}
|
39
tests/test-sources/plugins/languages/otter.nix
Normal file
39
tests/test-sources/plugins/languages/otter.nix
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
{
|
||||||
|
empty = {
|
||||||
|
plugins.otter.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
defaults = {
|
||||||
|
plugins.otter = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
lsp = {
|
||||||
|
hover = {
|
||||||
|
border = [
|
||||||
|
"╭"
|
||||||
|
"─"
|
||||||
|
"╮"
|
||||||
|
"│"
|
||||||
|
"╯"
|
||||||
|
"─"
|
||||||
|
"╰"
|
||||||
|
"│"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
diagnostic_update_events = [ "BufWritePost" ];
|
||||||
|
};
|
||||||
|
buffers = {
|
||||||
|
set_filetype = false;
|
||||||
|
write_to_disk = false;
|
||||||
|
};
|
||||||
|
strip_wrapping_quote_characters = [
|
||||||
|
"'"
|
||||||
|
"\""
|
||||||
|
"\`"
|
||||||
|
];
|
||||||
|
handle_leading_whitespace = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue