Native Codeium plugin for Neovim.
Feel free to create an issue/PR if you want to see anything else implemented.
Screencast.from.2023-01-29.02-29-50.webm
use {
"Exafunction/codeium.nvim",
requires = {
"nvim-lua/plenary.nvim",
"hrsh7th/nvim-cmp",
},
config = function()
require("codeium").setup({
})
end
}{
"Exafunction/codeium.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"hrsh7th/nvim-cmp",
},
config = function()
require("codeium").setup({
})
end
},After installation and configuration, you will need to authenticate with
Codeium. This can be done by running :Codeium Auth, copying the token from
your browser and pasting it into API token request.
-
config_path: the path to the config file, used to store the API key. -
bin_path: the path to the directory where the Codeium server will be downloaded to. -
api: information about the API server to use:host: the hostnameport: the port
-
tools: paths to binaries used by the plugin:-
uname: not needed on Windows, defaults given. -
uuidgen -
curl: -
gzip: not needed on Windows, default implemenation given using powershell.exe Expand-Archive instead -
language_server: The path to the language server downloaded from the official source.
-
-
wrapper: the path to a wrapper script/binary that is used to execute any binaries not listed undertools. This is primarily useful for NixOS, where a FHS wrapper can be used for the downloaded codeium server.
After calling setup, this plugin will register a source in nvim-cmp. nvim-cmp
can then be set up to use this source using the sources configuration:
cmp.setup({
-- ...
sources = {
-- ...
{ name = "codeium" }
}
})To set a symbol for codeium using lspkind, use the Codeium keyword. Example:
cmp.setup({
-- ...
formatting = {
format = require('lspkind').cmp_format({
mode = "symbol",
maxwidth = 50,
ellipsis_char = '...',
symbol_map = { Codeium = "", }
})
}
})The plugin log is written to ~/.cache/nvim/codeium.log.
You can set the logging level to one of trace, debug, info, warn,
error by exporting the DEBUG_CODEIUM environment variable.
This plugin was initially developed by @jcdickinson.