nix-community.nixvim/plugins/completion/coq.nix
Pedro Alves f8b70a30ea coq-nvim: init plugin
still need to add most options, but this is enough to be usable
right now! This also sets up the work needed for other completion
frameworks, notably things like nvim-cmp and compe.
2022-01-09 23:04:12 +00:00

47 lines
1.2 KiB
Nix

{ pkgs, lib, config, ... }:
with lib;
let
cfg = config.programs.nixvim.plugins.coq-nvim;
helpers = import ../helpers.nix { lib = lib; };
plugins = import ../plugin-defs.nix { inherit pkgs; };
in {
options = {
programs.nixvim.plugins.coq-nvim = {
enable = mkEnableOption "Enable coq-nvim";
installArtifacts = mkEnableOption "Install coq-artifacts";
autoStart = mkOption {
type = with types; nullOr (oneOf [bool (enum ["shut-up"])]);
default = null;
description = "Auto-start or shut up";
};
recommendedKeymaps = mkOption {
type = with types; nullOr bool;
default = null;
description = "Use the recommended keymaps";
};
};
};
config = let
settings = {
auto_start = cfg.autoStart;
"keymap.recommended" = cfg.recommendedKeymaps;
};
in mkIf cfg.enable {
programs.nixvim = {
extraPlugins = [
plugins.coq-nvim
] ++ optional cfg.installArtifacts plugins.coq-artifacts;
plugins.lsp = {
preConfig = ''
vim.g.coq_settings = ${helpers.toLuaObject settings}
local coq = require 'coq'
'';
setupWrappers = [(s: ''coq.lsp_ensure_capabilities(${s})'')];
};
};
};
}