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.
To use Codeium Chat, execute the :Codeium Chat
command (this feature is only
available when chat is enabled in the configuration). The chat will be opened
in your default browser using the xdg-open command.
-
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 hostname. Example:"codeium.example.com"
. Required when using enterprise modeport
: the port. Defaults to443
path
: the path prefix to the API server. Default for enterprise:"/_route/api_server"
portal_url
: the portal URL to use (for enterprise mode). Defaults tohost:port
-
enterprise_mode
: enable enterprise mode -
detect_proxy
: enable or disable proxy detection -
enable_chat
: enable chat functionality -
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" }
}
})
If you are seeing the codeium
source as unused in :CmpStatus
, make sure that nvim-cmp
setup happens before the codeium.nvim
setup.
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.