mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-29 12:00:04 +02:00
plugins/codeium-nvim: init
This commit is contained in:
parent
e1e417bff8
commit
1057ef93e3
4 changed files with 127 additions and 0 deletions
|
@ -61,5 +61,6 @@ in
|
||||||
"cmp_pandoc" = "cmp-pandoc-nvim";
|
"cmp_pandoc" = "cmp-pandoc-nvim";
|
||||||
"treesitter" = "cmp-treesitter";
|
"treesitter" = "cmp-treesitter";
|
||||||
"vimwiki-tags" = "cmp-vimwiki-tags";
|
"vimwiki-tags" = "cmp-vimwiki-tags";
|
||||||
|
"codeium" = "codeium-nvim";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
89
plugins/completion/nvim-cmp/sources/codeium-nvim.nix
Normal file
89
plugins/completion/nvim-cmp/sources/codeium-nvim.nix
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
helpers,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.plugins.codeium-nvim;
|
||||||
|
in {
|
||||||
|
meta.maintainers = [maintainers.GaetanLepage];
|
||||||
|
|
||||||
|
options.plugins.codeium-nvim =
|
||||||
|
helpers.extraOptionsOptions
|
||||||
|
// {
|
||||||
|
package = helpers.mkPackageOption "codeium.nvim" pkgs.vimPlugins.codeium-nvim;
|
||||||
|
|
||||||
|
configPath =
|
||||||
|
helpers.defaultNullOpts.mkStr
|
||||||
|
''{__raw = "vim.fn.stdpath('cache') .. '/codeium/config.json'";}''
|
||||||
|
"The path to the config file, used to store the API key.";
|
||||||
|
|
||||||
|
binPath =
|
||||||
|
helpers.defaultNullOpts.mkStr
|
||||||
|
''{__raw = "vim.fn.stdpath('cache') .. '/codeium/bin'";}''
|
||||||
|
"The path to the directory where the Codeium server will be downloaded to.";
|
||||||
|
|
||||||
|
api = {
|
||||||
|
host = helpers.defaultNullOpts.mkStr "server.codeium.com" ''
|
||||||
|
The hostname of the API server to use.
|
||||||
|
'';
|
||||||
|
|
||||||
|
port = helpers.defaultNullOpts.mkPositiveInt 443 ''
|
||||||
|
The port of the API server to use.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
tools = {
|
||||||
|
uname = helpers.mkNullOrOption types.str "The path to the `uname` binary.";
|
||||||
|
|
||||||
|
uuidgen = helpers.mkNullOrOption types.str "The path to the `uuidgen` binary.";
|
||||||
|
|
||||||
|
curl = helpers.mkNullOrOption types.str "The path to the `curl` binary.";
|
||||||
|
|
||||||
|
gzip = helpers.mkNullOrOption types.str "The path to the `gzip` binary.";
|
||||||
|
|
||||||
|
languageServer = helpers.mkNullOrOption types.str ''
|
||||||
|
The path to the language server downloaded from the official source.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
wrapper = helpers.mkNullOrOption types.str ''
|
||||||
|
The path to a wrapper script/binary that is used to execute any binaries not listed under
|
||||||
|
tools.
|
||||||
|
This is primarily useful for NixOS, where a FHS wrapper can be used for the downloaded
|
||||||
|
codeium server.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
extraConfigLua = let
|
||||||
|
setupOptions = with cfg;
|
||||||
|
{
|
||||||
|
config_path = configPath;
|
||||||
|
bin_path = binPath;
|
||||||
|
api = with api; {
|
||||||
|
inherit host;
|
||||||
|
port =
|
||||||
|
if isInt port
|
||||||
|
then toString port
|
||||||
|
else port;
|
||||||
|
};
|
||||||
|
tools = with tools; {
|
||||||
|
inherit
|
||||||
|
uname
|
||||||
|
uuidgen
|
||||||
|
curl
|
||||||
|
gzip
|
||||||
|
;
|
||||||
|
language_server = languageServer;
|
||||||
|
};
|
||||||
|
inherit wrapper;
|
||||||
|
}
|
||||||
|
// cfg.extraOptions;
|
||||||
|
in ''
|
||||||
|
require('codeium').setup(${helpers.toLuaObject setupOptions})
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
|
@ -12,6 +12,7 @@ in {
|
||||||
# For extra cmp plugins
|
# For extra cmp plugins
|
||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
|
./codeium-nvim.nix
|
||||||
./copilot-cmp.nix
|
./copilot-cmp.nix
|
||||||
./cmp-tabnine.nix
|
./cmp-tabnine.nix
|
||||||
./crates-nvim.nix
|
./crates-nvim.nix
|
||||||
|
|
36
tests/test-sources/plugins/completion/codeium-nvim.nix
Normal file
36
tests/test-sources/plugins/completion/codeium-nvim.nix
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
{
|
||||||
|
empty = {
|
||||||
|
plugins.codeium-nvim.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
enabled-by-cmp = {
|
||||||
|
plugins.nvim-cmp = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
sources = [
|
||||||
|
{name = "codeium";}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
defaults = {
|
||||||
|
plugins.codeium-nvim = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
configPath.__raw = "vim.fn.stdpath('cache') .. '/codeium/config.json'";
|
||||||
|
binPath.__raw = "vim.fn.stdpath('cache') .. '/codeium/bin'";
|
||||||
|
api = {
|
||||||
|
host = "server.codeium.com";
|
||||||
|
port = 443;
|
||||||
|
};
|
||||||
|
tools = {
|
||||||
|
uname = null;
|
||||||
|
uuidgen = null;
|
||||||
|
curl = null;
|
||||||
|
gzip = null;
|
||||||
|
languageServer = null;
|
||||||
|
};
|
||||||
|
wrapper = null;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue