-
-
Notifications
You must be signed in to change notification settings - Fork 298
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
e1e417b
commit 1057ef9
Showing
4 changed files
with
127 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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}) | ||
''; | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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; | ||
}; | ||
}; | ||
} |