plugins/copilot: rename copilot -> copilot-vim

This commit is contained in:
Gaetan Lepage 2023-06-22 09:48:17 +02:00 committed by Gaétan Lepage
parent 15b821db10
commit 7ae81019d9
5 changed files with 85 additions and 48 deletions

View file

@ -0,0 +1,65 @@
{
config,
pkgs,
lib,
...
}:
with lib; let
cfg = config.plugins.copilot-vim;
helpers = import ../helpers.nix {inherit lib;};
in {
imports = [
(lib.mkRenamedOptionModule ["plugins" "copilot"] ["plugins" "copilot-vim"])
];
options = {
plugins.copilot-vim = {
enable = mkEnableOption "copilot.vim";
package = helpers.mkPackageOption "copilot.vim" pkgs.vimPlugins.copilot-vim;
filetypes = mkOption {
type = types.attrsOf types.bool;
description = "A dictionary mapping file types to their enabled status";
default = {};
example = literalExpression ''
{
"*" = false;
python = true;
}
'';
};
proxy = helpers.defaultNullOpts.mkStr "" ''
Tell Copilot what proxy server to use.
Example: "localhost:3128"
'';
extraConfig = mkOption {
type = types.attrs;
description = ''
The configuration options for copilot without the 'copilot_' prefix.
Example: To set 'copilot_foo_bar' to 1, write
extraConfig = {
foo_bar = true;
};
'';
default = {};
};
};
};
config = mkIf cfg.enable {
extraPlugins = [cfg.package];
globals = with cfg;
mapAttrs' (name: nameValuePair ("copilot_" + name))
(
{
node_command = "${pkgs.nodejs-18_x}/bin/node";
inherit filetypes proxy;
}
// cfg.extraConfig
);
};
}

View file

@ -1,46 +0,0 @@
{
config,
pkgs,
lib,
...
}:
with lib; let
cfg = config.plugins.copilot;
helpers = import ../helpers.nix {inherit lib;};
in {
options = {
plugins.copilot = {
enable = mkEnableOption "copilot";
package = helpers.mkPackageOption "copilot" pkgs.vimPlugins.copilot-vim;
filetypes = mkOption {
type = types.attrsOf types.bool;
description = "A dictionary mapping file types to their enabled status";
default = {};
example = literalExpression '' {
"*": false,
python: true
}'';
};
proxy = mkOption {
type = types.nullOr types.str;
description = "Tell Copilot what proxy server to use.";
default = null;
example = "localhost:3128";
};
};
};
config = mkIf cfg.enable {
extraPlugins = [cfg.package];
globals =
{
copilot_node_command = "${pkgs.nodejs-18_x}/bin/node";
copilot_filetypes = cfg.filetypes;
}
// (
if cfg.proxy != null
then {copilot_proxy = cfg.proxy;}
else {}
);
};
}

View file

@ -15,7 +15,7 @@
./completion/coq.nix ./completion/coq.nix
./completion/coq-thirdparty.nix ./completion/coq-thirdparty.nix
./completion/copilot.nix ./completion/copilot-vim.nix
./completion/nvim-cmp ./completion/nvim-cmp
./completion/nvim-cmp/sources ./completion/nvim-cmp/sources
./completion/lspkind.nix ./completion/lspkind.nix

View file

@ -0,0 +1,18 @@
{
empty = {
plugins.copilot-vim.enable = true;
};
example = {
plugins.copilot-vim = {
enable = true;
filetypes = {
"*" = false;
python = true;
};
proxy = "localhost:3128";
};
};
}