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";
|
||||
"treesitter" = "cmp-treesitter";
|
||||
"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
|
||||
imports =
|
||||
[
|
||||
./codeium-nvim.nix
|
||||
./copilot-cmp.nix
|
||||
./cmp-tabnine.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