nixeovim/modules/plugins/style/neoformat.nix
Dmitriy Pleshevskiy f3926f6365
modules/plugin: remove isDependency
do not import to local variable by default. Instead you should
set varName option.
2024-05-10 02:17:00 +03:00

50 lines
1.2 KiB
Nix

{ config, lib, pkgs, ... }:
let cfg = config.plugins.style.neoformat; in
{
options.plugins.style.neoformat = with lib; {
enable = mkEnableOption "neoformat";
package = mkPackageOption pkgs.vimPlugins "neoformat" { };
settings = mkOption {
type = types.attrs;
default = { };
description = ''
See: https://github.com/sbdchd/neoformat?tab=readme-ov-file#config-optional
'';
example = {
neoformat_enabled_markdown = [ "denofmt" ];
neoformat_rust_rustfmt = {
exe = "rustfmt";
args = [ "--edition 2021" ];
stdin = 1;
};
};
};
autoformat.enable = mkEnableOption "Autoformat on save file";
};
config = lib.mkIf cfg.enable {
# we shouldn't import this plugin
plugin.neoformat.package = cfg.package;
vim.g = {
neoformat_try_node_exe = 1;
neoformat_only_msg_on_error = 1;
} // cfg.settings;
vim.namedCmd = lib.mkIf cfg.autoformat.enable {
autoformat = ''
augroup autoformat
autocmd!
autocmd BufWritePre * try | undojoin | Neoformat | catch /E790/ | Neoformat | endtry
augroup END
'';
};
};
}