exafunction / codeium.nvim Goto Github PK
View Code? Open in Web Editor NEWA native neovim extension for Codeium
License: MIT License
A native neovim extension for Codeium
License: MIT License
for whatever reason im getting it crashing if i ever open up a second neovim instance.
after turning on trace logging i get this.
[codeium] [DEBUG 18:02:58] ...al/share/nvim-data/lazy/codeium.nvim/lua/codeium/api.lua:209: 46504: I0317 18:02:57.435801 46504 main.go:357] Starting language server manager with pid 46504
[codeium] [DEBUG 18:02:58] ...al/share/nvim-data/lazy/codeium.nvim/lua/codeium/api.lua:209: 46504: F0317 18:02:57.438467 46504 main.go:81] Failed to acquire manager lock file C:/Temp/nvim/codeium/manager/locks/manager.lock: <nil>
[codeium] [ERROR 18:02:58] ...share/nvim-data/lazy/codeium.nvim/lua/codeium/notify.lua:14: codeium server crashed: {
[codeium] code = 1
[codeium] }
I don't think this used to happen... and I'm not sure how it gets the lock in the first place or why it would not be able to get one a second time.
Codeium for vscode support chat mode, can you do it for nvim ? And interaction can be like Bryley/neoai.nvim
https://superuser.com/questions/911735/how-do-i-use-xdg-open-from-xdg-utils-on-mac-osx
xdg-open is pretty neatly tied into the freedeskop environments, and OSX' counterpart would be the open command.
I have been digging like mad on this.
ok, so when you get a full print out of the exact args that are being sent to a curl when a job is started, it isn't consistent for all filetypes. i think this is what is messing up plaintext and fsharp, and possibly others..
example of how lua (which works and doesn't throw any errors) looks
args =
{ "-sSL",
"-D",
"C:\Users\Will.ehrendreich\AppData\Local\Temp\plenary_curl_6c4b488e.headers",
"-X",
"POST",
"-H",
"Content-Type: application/json",
"--data-raw",
'{
"editor_options":
{"insert_spaces": true, "tab_size": 2},
"metadata":
{"extension_name": "vim",
"ide_name": "neovim",
"request_id": 14,
"api_key": "[redacted]",
"extension_version": "1.2.36",
"ide_version": "0.10.0-"},
"document":
{"editor_language": "lua",
"language": 23,
"line_ending": "\r\n",
"cursor_offset": 90,
"text": "-- bootstrap lazy.nvim, LazyVim and your plugins\r\nlocal vim = vim\r\nrequire(\"config.lazy\")l\r\n"}}',
"http://localhost:30383/exa.language_server_pb.LanguageServerService/GetCompletions" },
ok, so this is a screwed up one from fsharp
args = {
"-sSL",
"-D",
"C:\Users\Will.ehrendreich\AppData\Local\Temp\plenary_curl_b55f4f56.headers",
"-X",
"POST",
"-H",
"Content-Type: application/json",
"--data-raw",
"{"editor_options":
{"insert_spaces": true,
"tab_size": 2},
"metadata":
{"extension_name": "vim",
"ide_name": "neovim", "request_id": 42, "api_key": "[redacted]", "extension_version": "1.2.36", "ide_version": "0.10.0-"},
"document": {"editor_language": "fsharp", "language": 59, "line_ending": "\r\n", "cursor_offset": 10574, "text": "[redacted]" }\r\n\r\n"}}",
"http://localhost:30383/exa.language_server_pb.LanguageServerService/GetCompletions"
},
now, how is it that running the same function util.get_editor_options(bufnr) gives the 2 different results? why is the fsharp and plain text one with escaped " chars everywhere? How do we normalize that so it doesn't happen?
Error executing luv callback:
vim/_editor.lua:0: E5560: nvim_echo must not be called in a lua loop callback
stack traceback:
[C]: in function 'nvim_echo'
vim/_editor.lua: in function 'notify'
...ocal/share/nvim/lazy/codeium.nvim/lua/codeium/update.lua:72: in function 'unpack'
...ocal/share/nvim/lazy/codeium.nvim/lua/codeium/update.lua:111: in function '_user_on_exit'
.../.local/share/nvim/lazy/plenary.nvim/lua/plenary/job.lua:240: in function '_shutdown'
.../.local/share/nvim/lazy/plenary.nvim/lua/plenary/job.lua:46: in function <.../.local/share/n
vim/lazy/plenary.nvim/lua/plenary/job.lua:37>
NVIM v0.9.0-dev-3318+g9b1112cf4-dirty
Build type: Release
LuaJIT 2.1.0-beta3
Compiled by [email protected]
Features: +acl +iconv +tui
Wondering if there are other arguments :Codeium
expects? I was expecting to see something like :Codeium Status
to confirm everything was ok, but found no documentation.
https://github.com/jcdickinson/codeium.nvim/blob/84cc2022c6d118722c5a511ccb2d1e4cebc31fcf/lua/codeium/io.lua#L227
This line should be fixed with:
if os == "macos" and arch == "arm64" then
I'm using the latest commit of codeium.nvim, and completion fails with error:
[DEBUG 三 6/21 18:16:22 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 67887: I0621 18:16:22.310775 67888 proxy.go:94] proxyplease.connect> Proxy successfully established. No authentication was required.
[DEBUG 三 6/21 18:17:04 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 67887: I0621 18:17:04.902683 67888 proxy.go:94] proxyplease.connect> Proxy successfully established. No authentication was required.
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.026581 68220 main.go:385] Starting language server manager with pid 68220
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.027104 68220 main.go:85] Manager acquired its lock file /var/folders/hh/4979hwx95nl_j6tvzyhygpd00000gn/T/nvim.iven/42uUAc/0codeium/manager/locks/manager.lock
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.030491 68220 main.go:207] Waiting for random port file in /var/folders/hh/4979hwx95nl_j6tvzyhygpd00000gn/T/nvim.iven/42uUAc/0codeium/manager/child_random_port_1687342664027214000_3635028212560001566 to be created
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.081799 68221 main.go:379] Starting language server process with pid 68221
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.096262 68221 proxy.go:76] proxyplease.proxy> No proxy provided. Attempting to infer from system.
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: 2023/06/21 18:17:44 [proxy.Provider.readDarwinNetworkSettingProxy]: Automatic proxy is not enabled.
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: 2023/06/21 18:17:44 [proxy.Provider.readDarwinNetworkSettingProxy]: https proxy is not enabled.
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.123102 68221 proxy.go:76] proxyplease.proxy> No proxy could be determined. Assuming a direct connection.
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.123160 68221 client.go:589] [DEBUG] HEAD https://codeium.com
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.323216 68221 api_server_client.go:105] Successfully dialed proxy
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.323394 68221 server.go:275] Successfully created API server client
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.323409 68221 api_server_client.go:105] Successfully dialed proxy
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.323492 68221 server.go:281] Successfully created API streaming client
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.358140 68221 server.go:290] Successfully initialized tokenizer
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.358383 68221 unleash.go:58] Initializing Unleash with production environment
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.378168 68221 server.go:381] Successfully created completion provider
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.378198 68221 server.go:411] Child process attempting to acquire lock file /var/folders/hh/4979hwx95nl_j6tvzyhygpd00000gn/T/nvim.iven/42uUAc/0codeium/manager/locks/child_lock_1687342664027394000_7993368071330523491
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.378412 68221 server.go:421] Child process acquired lock file /var/folders/hh/4979hwx95nl_j6tvzyhygpd00000gn/T/nvim.iven/42uUAc/0codeium/manager/locks/child_lock_1687342664027394000_7993368071330523491
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.378996 68221 server.go:161] Language server will attempt to listen on host 127.0.0.1
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.379235 68221 server.go:197] Language server listening on random port at 59460
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.433543 68220 main.go:243] Language server manager found random server port 59460
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.433615 68220 main.go:244] Language server manager found random lsp port 42101
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.433626 68220 main.go:251] Language server manager attempting to connect to language server at 127.0.0.1:59460
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.447571 68220 main.go:122] Fixing language server port at 59460
[DEBUG 三 6/21 18:17:44 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:44.447593 68220 main.go:297] Language server manager successfully connected to new language server at 127.0.0.1:59460
[DEBUG 三 6/21 18:17:45 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: I0621 18:17:45.321292 68221 unleash.go:72] Successfully initialized unleash
[DEBUG 三 6/21 18:17:47 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: E0621 18:17:47.846436 68221 context_module.go:597] Error on updating context module state: one or more errors while updating context items [error adding ccis for source CODE_CONTEXT_SOURCE_LOCAL_DIRECTORY: absolutePath and relativePath do not share a base directory error adding ccis for source CODE_CONTEXT_SOURCE_LAST_ACTIVE_DOC: error getting items for active doc : could not find workspace for : absolutePath and relativePath do not share a base directory]
[DEBUG 三 6/21 18:17:47 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:206: 68220: E0621 18:17:47.850197 68221 interceptor.go:31] /exa.language_server_pb.LanguageServerService/GetCompletions: error computing score: avgLength is NaN
[ERROR 三 6/21 18:17:47 2023] /Users/iven/.local/share/nvim/lazy/codeium.nvim/lua/codeium/notify.lua:14: completion request failed: {
code = 0,
out = '{"code":"unknown","message":"error computing score: avgLength is NaN"}',
response = {
body = '{"code":"unknown","message":"error computing score: avgLength is NaN"}',
exit = 0,
headers = { "Accept-Encoding: gzip", "Content-Type: application/json", "Vary: Origin", "Date: Wed, 21 Jun 2023 10:17:47 GMT", "Content-Length: 70", "", "" },
status = 500
},
status = 500
}
Receiving this error when trying to call auto suggestion popup in nvim.
Error executing vim.schedule lua callback: ...ocal/share/nvim/lazy/codeium.nvim/lua/codeium/source.lua:46: attempt to perform arithmetic on field 'col' (a nil value)
stack traceback:
...ocal/share/nvim/lazy/codeium.nvim/lua/codeium/source.lua:46: in function 'codeium_to_cmp'
...ocal/share/nvim/lazy/codeium.nvim/lua/codeium/source.lua:136: in function 'handle_completions'
...ocal/share/nvim/lazy/codeium.nvim/lua/codeium/source.lua:159: in function 'callback'
.../.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:261: in function 'complete'
.../.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:322: in function ''
vim/_editor.lua: in function <vim/_editor.lua:0>
I'm using codeium.vim and thinking about migration, so curious about the performance profiling of the two.
My current setup works great on my Mac Mini, but doesn't work on my Windows laptop. :(
I'm using the latest Neovim 0.9.1 with Lazyvim, and this package at ed7bae7 commit.
codeium.lua
{
"jcdickinson/codeium.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"hrsh7th/nvim-cmp",
},
config = function()
require("codeium").setup()
end,
}
nvim-cmp.lua
{
"hrsh7th/nvim-cmp",
dependencies = { "onsails/lspkind.nvim" },
opts = {
sources = require("cmp").config.sources({
{ name = "buffer", max_item_count = 2 },
{ name = "codeium", max_item_count = 2 },
{ name = "cmp_tabnine", max_item_count = 2 },
{ name = "nvim_lsp" },
{ name = "luasnip" },
{ name = "path" },
}),
mapping = require("cmp").mapping.preset.insert({
["<C-a>"] = require("cmp").mapping.complete(),
}),
formatting = {
format = function(entry, vim_item)
-- if you have lspkind installed, you can use it like
-- in the following line:
vim_item.kind = require("lspkind").symbolic(vim_item.kind, { mode = "symbol_text" })
vim_item.menu = source_mapping[entry.source.name]
if entry.source.name == "codeium" then
local detail = (entry.completion_item.data or {}).detail
vim_item.kind = " Codeium"
if detail and detail:find(".*%%.*") then
vim_item.kind = vim_item.kind .. " " .. detail
end
if (entry.completion_item.data or {}).multiline then
vim_item.kind = vim_item.kind .. " " .. "[ML]"
end
end
local maxwidth = 80
vim_item.abbr = string.sub(vim_item.abbr, 1, maxwidth)
return vim_item
end,
},
},
}
I see the following error message repeatedly while editing go
files:
[ERROR Tue Jan 31 14:10:40 2023] ...ocal/share/nvim/lazy/codeium.nvim/lua/codeium/notify.lua:14: completion request failed: {
code = 0,
out = '{"code":"invalid_argument","message":"invalid GetCompletionsRequest.EditorOptions: embedded message failed validation | caused by: invalid EditorOptions.TabSize: value must be greater than 0"}',
response = {
body = '{"code":"invalid_argument","message":"invalid GetCompletionsRequest.EditorOptions: embedded message failed validation | caused by: invalid EditorOptions.TabSize: value must be greater than 0"}',
exit = 0,
headers = { "Accept-Encoding: gzip", "Content-Type: application/json", "Vary: Origin", "Date: Tue, 31 Jan 2023 05:10:40 GMT", "Content-Length: 192", "", ""},
status = 400
},
status = 400
}
Fails both on neovim v0.8.2 and v0.9.0-dev-834+g4c90a84c6, and the plugin is up-to-date.
I tried without this go plugin, but there was no change.
[codeium] [ERROR 15:50:38] ...ocal/share/nvim/lazy/codeium.nvim/lua/codeium/notify.lua:14: completion request failed: {
[codeium] code = 0,
[codeium] out = '{"code":"unavailable","message":"dial tcp: lookup server.codeium.com: no such host"}',
[codeium] response = {
[codeium] body = '{"code":"unavailable","message":"dial tcp: lookup server.codeium.com: no such host"}',
[codeium] exit = 0,
[codeium] headers = { "Accept-Encoding: gzip", "Content-Type: application/json", "Vary: Origin", "Date: Mon, 20 Mar 2023 10:20:38 GMT", "Content-Length: 84", "", "" },
[codeium] status = 503
[codeium] },
[codeium] status = 503
[codeium] }
Whenever internet connection is lost, messages gets spammed by this. Is it possible to suppress this ? Or is it possible to avoid trying if there is no network?
:lua =require('cmp').status()
Reports codeium as an unused source. I am having trouble figuring out how to move it to a ready source.
# ready source names
- path
- buffer
- luasnip
- TabNine
# unused source names
- codeium
# unknown source names
- copilot
- nvim_lsp
- nvim_lua
- calc
- emoji
- treesitter
- crates
- tmux
Using LazyVim config on a Mac and when keying Codeium Auth, Safari is triggered and there is a key generated but on neovim side I receive the following error
Error 19:54:14 msg_show.lua_error Error executing vim.schedule lua callback: ...e/nvim/lazy/codeium.nvim/lua/codeium/views/auth-menu.lua:5: attempt to call field 'inputsecret' (a nil value)
stack traceback:
...e/nvim/lazy/codeium.nvim/lua/codeium/views/auth-menu.lua:5: in function 'get_key'
...e/nvim/lazy/codeium.nvim/lua/codeium/views/auth-menu.lua:90: in function 'callback'
...e/nvim/lazy/codeium.nvim/lua/codeium/views/auth-menu.lua:122: in function 'on_choice'
...are/nvim/lazy/dressing.nvim/lua/dressing/select/init.lua:78: in function ''
vim/_editor.lua: in function <vim/_editor.lua:0>
I have tried to deactivate dressing.nvim but I get the same problem.
As always I assume an operator error but in this case I am not able to detect/correct what I am doing wrong. Any help would be appreciated
Awesome plugin, thank you a lot.
Would it be possible to get suggestions the same way as in codeium.vim
project? cmp
is awesome but you need start typing or press C-Space to see suggestions, and suggestions are shown not in the first positions of a long list.
as far as I can tell, nui
is only needed for authentication, isn't it? I tried removing it and everything seems to work fine, still.
Given that codeium.nvim is the only plugin on my machine that requires nui, and nui isn't even used anymore, it seemed a bit pointless to still have nui around. And just for the one-time authentication, one shouldn't have to add an extra dependency they potentially never need anymore.
Would it maybe make sense to remove the nui dependency and use vim.notify
and vim.ui.input
instead?
@ww-daniel-mora 3a1f45b does not correctly resolve whether or not I'm running on windows. I've always seen the vim.fn.has("win32") in examples, and that works on my machine, so I'm curious what prompted the change to vim.call("exists","win32") == 1 . It comes up false for me.
Whenever I'm in a file with no extension and I type I get this error:
completion request failed
[codeium] [ERROR 21:48:30] ...ocal/share/nvim/lazy/codeium.nvim/lua/codeium/notify.lua:14: completion request failed: {
[codeium] code = 0,
[codeium] out = '{"code":"invalid_argument","message":"invalid GetCompletionsRequest.Document: embedded message failed validation | caused by: invalid Document.EditorLanguage: value length must be at least 1 runes"}',
[codeium] response = {
[codeium] body = '{"code":"invalid_argument","message":"invalid GetCompletionsRequest.Document: embedded message failed validation | caused by: invalid Document
.EditorLanguage: value length must be at least 1 runes"}',
[codeium] exit = 0,
[codeium] headers = { "Accept-Encoding: gzip", "Content-Type: application/json", "Vary: Origin", "Date: Mon, 30 Jan 2023 20:47:43 GMT", "Content-Length: 198", "
", "" },
[codeium] status = 400
[codeium] },
[codeium] status = 400
[codeium] }
It seems like there's some issues because the name of the language is to short.
Please let me know if you need any more info on this. I don't have time tonight to get a minimal config for this, but I might tomorrow if needed.
i'm having an issue when using this plugin in windows 11, it get an error when trying to :Codeium Auth, then it show an error,
im using lazy and NVChad,
then i tried install it with lazy and nvchad in WSL ubuntu, it ran fine but after i paste the key it got an error
im using Windows 11 Home Insider Preview Single Language,
im sorry if this issue are duplicate with the one in #59
I have put the uuidgen.exe
file in my path and can open the codeium authentication page. But when I input the generated token in neovim input box I get this error:
This error is very similar to #44 but it occurs during authentication instead of during download. The culprit seems to be the --compressed
flag.
I am on commit b1ff0d6 because apparently inputsecret
is not supported in neovim and prior to this commit, input
was used.
In order to trigger codeium.nvim
's multiline suggestions, I need to write a lot of characters first. Here's my case, open a cpp file and type:
void sieve(){
}
In the function body, when typing for
only (first thing to do to make a sieve):
void sieve(){
for
}
I would expect codeium.nvim
to suggest the rest of the function (like codeium
on browser did), but in fact, it just suggested 1-line suggestion. But then I tried typing more characters, e.g for(int
:
void sieve(){
for(int
}
It starts working properly and suggests multiline suggestions. Is there a way to fix it?
Versions
Codeium: 1.1.32
NeoVIM: v0.8.3
LuaJIT 2.1.0-beta3
nvim-cmp: latest
Description
Trying to navigate suggestion options yields unexpected behavior.
Actual result
When trying to select (not confirm!) the suggestion it truncates the string prefixing the completion.
Demo:
https://asciinema.org/a/DkoW93CTZk2IFYkjAzaAgpmsZ
Expected behavior
Navigating through the suggestions w/o affecting the prefix.
Notes
The same configuration works as expected with other sources (LSP, LuaSnip, ...).
issue remaned from
plenary throw's error on :codeium auth
please look at the info section for better understanding
1 . whenever i open nvim it just show downloading server
99%
surely my net is slow but that is the whole point of using neovim! efficient and low resources RIGHT ?
but , after waiting for like 2 min many times statusline shows codeium.nvim : server updaetd
then i restart nvim guess what
again the blissfull screen downloading server
- im tried of this
2. server is still not installed! 🤷 idk reallly , after waiting a long time 15 min i did :codeium AUTH
here is the output
vCodeium.nvim: server downloaded
unpacking server
Codeium.nvim: server unpacked
Codeium.nvim: server updated
Error executing Lua callback: ...0/.cache/nvim-data/lazy/plenary.nvim/lua/plenary/job.lua:106: uuidgen: Executable not found
stack traceback:
...0/.cache/nvim-data/lazy/plenary.nvim/lua/plenary/job.lua:106: in function 'job'
..._0/.cache/nvim-data/lazy/codeium.nvim/lua/codeium/io.lua:191: in function 'get_command_output'
..._0/.cache/nvim-data/lazy/codeium.nvim/lua/codeium/io.lua:315: in function 'generate_uuid'
...0/.cache/nvim-data/lazy/codeium.nvim/lua/codeium/api.lua:76: in function 'authenticate'
.../.cache/nvim-data/lazy/codeium.nvim/lua/codeium/init.lua:20: in function <.../.cache/nvim-data/lazy/codeium.nvim/lua/codeium/init.lua:17>
stack traceback:
[C]: in function 'error'
...0/.cache/nvim-data/lazy/plenary.nvim/lua/plenary/job.lua:106: in function 'job'
..._0/.cache/nvim-data/lazy/codeium.nvim/lua/codeium/io.lua:191: in function 'get_command_output'
..._0/.cache/nvim-data/lazy/codeium.nvim/lua/codeium/io.lua:315: in function 'generate_uuid'
...0/.cache/nvim-data/lazy/codeium.nvim/lua/codeium/api.lua:76: in function 'authenticate'
im.api.nvim_create_user_command('ConfigReload', ':h k', { desc = 'Reload config' })
i dont understand that 🌟 gibberish 🌟 correctly :(
minimal config lazy install
{
"jcdickinson/codeium.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
},
config = function()
require("codeium").setup({
})
end
},
OS : WINDOW 11 || yes i hate being Microsoft user but i am stuck |
nvim -v : NVIM v0.10.0-dev
& NVIM v0.9.1
both test fails
note : i dont like writing basically post that are boring to write , so please consider that im still learning english
there is meant to be many english mistakes please dont mind , also no serious manner , just some chill 👍 thanks
So I trace back to plenary.nvim
and found a relative issue
It seems like curl
with --compressed
is not supported on curl 8.0.1
(I install curl via scoop
)
I not sure if this error should be upstream to plenary
or not.
After the last update (8df6b54) I have a perpetual crash of codeium plugin.
The logs are explicit:
[DEBUG ven. 05 mai 2023 08:26:32] .../site/pack/packer/start/codeium.nvim/lua/codeium/api.lua:199: restarting server after crash
[DEBUG ven. 05 mai 2023 08:26:32] .../site/pack/packer/start/codeium.nvim/lua/codeium/api.lua:206: 25637: unknown flag: --api_server_host
[DEBUG ven. 05 mai 2023 08:26:32] .../site/pack/packer/start/codeium.nvim/lua/codeium/api.lua:206: 25637: Usage of /home/xbalesi/.cache/nvim/codeium/bin/1.2.14/language_server_linux_x64:
[DEBUG ven. 05 mai 2023 08:26:32] .../site/pack/packer/start/codeium.nvim/lua/codeium/api.lua:206: 25637: --api_server_url string API server host (default "http://0.0.0.0:50001")
[DEBUG ven. 05 mai 2023 08:26:32] .../site/pack/packer/start/codeium.nvim/lua/codeium/api.lua:206: 25637: --child_lock_file string Lock file for child process
[DEBUG ven. 05 mai 2023 08:26:32] .../site/pack/packer/start/codeium.nvim/lua/codeium/api.lua:206: 25637: --database_dir string Directory to store SQLite database
[DEBUG ven. 05 mai 2023 08:26:32] .../site/pack/packer/start/codeium.nvim/lua/codeium/api.lua:206: 25637: --detect_proxy If true, use proxy detection (default true)
[DEBUG ven. 05 mai 2023 08:26:32] .../site/pack/packer/start/codeium.nvim/lua/codeium/api.lua:206: 25637: --enable_lsp If true, enable LSP
[DEBUG ven. 05 mai 2023 08:26:32] .../site/pack/packer/start/codeium.nvim/lua/codeium/api.lua:206: 25637: --enable_search_api Whether to enable search API
[DEBUG ven. 05 mai 2023 08:26:32] .../site/pack/packer/start/codeium.nvim/lua/codeium/api.lua:206: 25637: --lsp_port int Port for LSP protocol (default 42101)
[DEBUG ven. 05 mai 2023 08:26:32] .../site/pack/packer/start/codeium.nvim/lua/codeium/api.lua:206: 25637: --manager_dir string Directory for language server manager
[DEBUG ven. 05 mai 2023 08:26:32] .../site/pack/packer/start/codeium.nvim/lua/codeium/api.lua:206: 25637: --manager_lock_file string Lock file for language server manager
[DEBUG ven. 05 mai 2023 08:26:32] .../site/pack/packer/start/codeium.nvim/lua/codeium/api.lua:206: 25637: --random_port Whether to trial out a random port.
[DEBUG ven. 05 mai 2023 08:26:32] .../site/pack/packer/start/codeium.nvim/lua/codeium/api.lua:206: 25637: --random_port_dir string Directory to store random ports.
[DEBUG ven. 05 mai 2023 08:26:32] .../site/pack/packer/start/codeium.nvim/lua/codeium/api.lua:206: 25637: --register_user_url string URL to register user (default "https://api.codeium.com/register_user/")
[DEBUG ven. 05 mai 2023 08:26:32] .../site/pack/packer/start/codeium.nvim/lua/codeium/api.lua:206: 25637: --search_max_workspace_file_count int The max workspace size that we will index.
[DEBUG ven. 05 mai 2023 08:26:32] .../site/pack/packer/start/codeium.nvim/lua/codeium/api.lua:206: 25637: --server_port int Port for language server to talk to extension (default 42100)
[DEBUG ven. 05 mai 2023 08:26:32] .../site/pack/packer/start/codeium.nvim/lua/codeium/api.lua:206: 25637: --stamp If true, print stamp information and exit
[DEBUG ven. 05 mai 2023 08:26:32] .../site/pack/packer/start/codeium.nvim/lua/codeium/api.lua:206: 25637: unknown flag: --api_server_host
[ERROR ven. 05 mai 2023 08:26:32] ...te/pack/packer/start/codeium.nvim/lua/codeium/notify.lua:14: codeium server crashed: {
code = 2
}
Thank you for this plugin that I like
Hi.
I've recently known about this plugin and it seems to match my setup much better than the official one. However, it seems to me the "completion request failed" happens way too often, and when it does, my nvim will be bombarded with all the logs, and I have no way but to press Esc several times to come back to my work.
I'm wondering if there's anyway to prevent this from happening? If the request fails for some reason, the plugin can either retry or just ignore, but not display any error on the UI?
Thank you a lot for a good plugin!
Codeium preview popup is missing syntax highlighting. See screenshots comparing to other preview types:
{ "zbirenbaum/copilot.lua", config = function() require("copilot").setup { suggestion = { enabled = false }, panel = { enabled = false } } end, },
{
"zbirenbaum/copilot-cmp",
event = "InsertEnter",
dependencies = { "zbirenbaum/copilot.lua", },
config = function() require("copilot_cmp").setup { formatters = { insert_text = require("copilot_cmp.format").remove_existing } } end,
},
{
"jcdickinson/codeium.nvim",
event = "InsertEnter",
dependencies = { "nvim-lua/plenary.nvim" },
config = function() require("codeium").setup({}) end
},
{
"hrsh7th/nvim-cmp",
dependencies = {
"zbirenbaum/copilot-cmp",
"jcdickinson/codeium.nvim"
},
opts = function(_, opts)
local cmp = require "cmp"
opts.sources = cmp.config.sources {
{ name = "copilot", priority = 1000 },
{ name = "codeium", priority = 900 },
{ name = "nvim_lsp", priority = 800 },
{ name = "luasnip", priority = 750 },
{ name = "buffer", priority = 500 },
{ name = "path", priority = 250 },
}
return opts
end,
},
{
"onsails/lspkind.nvim",
opts = {
symbol_map = {
Copilot = "",
Codeium = "",
}
},
},
completion request failed
│completion request failed
│[codeium] [ERROR 09:17:24] ...ocal/share/nvim/lazy/codeium.nvim/lua/codeium/notify.lua:14:
│completion request failed: {
│[codeium] code = 0,
│[codeium] out = '{"code":"canceled","message":"Post \\"https://server.codeium.com:443/exa
│.api_server_pb.ApiServerService/GetCompletions\\": context canceled"}',
│[codeium] response = {
│[codeium] body = '{"code":"canceled","message":"Post \\"https://server.codeium.com:443/
│exa.api_server_pb.ApiServerService/GetCompletions\\": context canceled"}',
│[codeium] exit = 0,
│[codeium] headers = { "Accept-Encoding: gzip", "Content-Type: application/json", "Vary:
│ Origin", "Date: Mon, 30 Jan 2023 01:17:23 GMT", "Content-Length: 139", "", "" },
│[codeium] status = 408
│[codeium] },
│[codeium] status = 408
│[codeium] }
This error seems like an api call debounce related error.
For some reason, sometimes, the executable can't be found.
It reports this error:
server updated
Error executing vim.schedule lua callback: ...im/site/pack/paqs/start/plenary.nvim/lua/plenary/job.lua:106: /home/<username>/.codeium/bin/1.1.24/language_server_windows_x64.exe: Executable not found
stack traceback:
...im/site/pack/paqs/start/plenary.nvim/lua/plenary/job.lua:106: in function 'job'
...im/site/pack/paqs/start/codeium.nvim/lua/codeium/api.lua:194: in function 'start'
...m/site/pack/paqs/start/codeium.nvim/lua/codeium/init.lua:13: in function 'callback'
...site/pack/paqs/start/codeium.nvim/lua/codeium/update.lua:67: in function 'callback'
...vim/site/pack/paqs/start/codeium.nvim/lua/codeium/io.lua:320: in function 'set_executable'
...site/pack/paqs/start/codeium.nvim/lua/codeium/update.lua:61: in function 'chmod'
...site/pack/paqs/start/codeium.nvim/lua/codeium/update.lua:80: in function 'fn'
...vim/site/pack/paqs/start/codeium.nvim/lua/codeium/io.lua:26: in function 'cb'
vim/_editor.lua:248: in function <vim/_editor.lua:247>
stack traceback:
[C]: in function 'error'
...im/site/pack/paqs/start/plenary.nvim/lua/plenary/job.lua:106: in function 'job'
...im/site/pack/paqs/start/codeium.nvim/lua/codeium/api.lua:194: in function 'start'
...m/site/pack/paqs/start/codeium.nvim/lua/codeium/init.lua:13: in function 'callback'
...site/pack/paqs/start/codeium.nvim/lua/codeium/update.lua:67: in function 'callback'
...vim/site/pack/paqs/start/codeium.nvim/lua/codeium/io.lua:320: in function 'set_executable'
...site/pack/paqs/start/codeium.nvim/lua/codeium/update.lua:61: in function 'chmod'
...site/pack/paqs/start/codeium.nvim/lua/codeium/update.lua:80: in function 'fn'
...vim/site/pack/paqs/start/codeium.nvim/lua/codeium/io.lua:26: in function 'cb'
vim/_editor.lua:248: in function <vim/_editor.lua:247>
I'm running on Linux, so I don't know why it even bothers checking for the windows executable? Anyway, the executable is accessable in the directory so honestly don't know why it sometimes can't find it.
I would be grateful if you could share the configuration
@jcdickinson First, thanks so much for producing this great plugin.
It would be great to have more fine-grained control over the kinds of files which should have Codeium completions either enabled or disabled. For example, it would be a good reassurance privacy-wise if .env
or other filetypes which customarily contain secrets or configuration could be ignored by Codeium.
Thanks again for putting your time and effort into this project.
Hey there, I'm interested in contributing to the development of the codeium plugin by adding toggle functionality via a keymap.
My plan is to use a global variable codium_enabled
and modify the setup()
function in init.lua
to return
if the codium_enabled
global variable is set to false
.
When the global variable is toggled to true
, I would run vim.api.nvim_command('packadd codeium')
or something similar to toggle a function to reload the plugin.
I'm hoping to get some guidance on how and if you would like that feature implemented.
Thanks for your help
Hello, in your code you use vim.loop.os_uname().sysname
to determine which OS is used but I tested this method on my own instance and this method returned 'Windows_NT' and not "Windows" so all your conditions for uuid, gzip, uname and others don't work correctly for Windows users.
I hope I've helped you and I apologize for the extra work.
NVIM v0.8.3
Build type: Release
LuaJIT 2.1.0-beta3
编译者 builduser
Features: +acl +iconv +tui
See ":help feature-compile"
系统 vimrc 文件: "$VIM/sysinit.vim"
$VIM 预设值: "/usr/share/nvim"
Run :checkhealth for more info
Authenticate Type
1: Open Default Browser
2: Copy URL to Clipboard
3: Display URL
4: I already have a key
Type number and <Enter> or click with the mouse (q or empty cancels): 3Error executing Lua callback: ...e/nvim/lazy/codeium.nvim/lua/codeium/views/auth-menu.lua:75: invalid key: title
stack traceback:
[C]: in function 'nvim_open_win'
...e/nvim/lazy/codeium.nvim/lua/codeium/views/auth-menu.lua:75: in function 'open_buffer'
...e/nvim/lazy/codeium.nvim/lua/codeium/views/auth-menu.lua:106: in function 'callback'
...e/nvim/lazy/codeium.nvim/lua/codeium/views/auth-menu.lua:122: in function 'on_choice'
/usr/share/nvim/runtime/lua/vim/ui.lua:54: in function 'select'
...e/nvim/lazy/codeium.nvim/lua/codeium/views/auth-menu.lua:80: in function <...e/nvim/lazy/codeium.nvim/lua/cod
eium/views/auth-menu.lua:79>
.../.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:125: in function 'prompt'
.../.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:129: in function 'authenticate'
....local/share/nvim/lazy/codeium.nvim/lua/codeium/init.lua:20: in function <....local/share/nvim/lazy/codeium.n
vim/lua/codeium/init.lua:17>
Cool project! Is there an example usage of setting this up with nix I can base my config on? (maybe a personal flake or something)
Hi, I am playing around with this plugin and found an issue: I have treesitter configured to disable text highlight in big files (in those cases it is too slow and makes the editor hang for a couple of seconds after each key stroke, falling back to the regex parser solves this issue) and it seems that doing this makes your plugin break with the following error
Error detected while processing TextChangedI Autocommands for "*":
Error executing lua callback: .../.local/share/nvim/lazy/plenary.nvim/lua/plenary/job.lua:405: Failed to spawn process: {
_additional_on_exit_callbacks = {},
_shutdown_check = <userdata 1>,
_stderr_results = {},
_stdout_results = {},
_user_on_exit = <function 1>,
args = { "-sSL", "-D", "/tmp/plenary_curl_2fe047dc.headers", "--compressed", "-X", "POST", "-H", "Content-Type: application/json", "--data-raw", "{\"editor_options\": {\"insert_spaces\": true, \"tab_size\": 2}, \"metadata\": {\"extension_name\": \"vim\", \"ide_name\": \"neovim\", \"request_id\": 3, \"api_key\": \"API_KEY_HERE\", \"extension_version\": \"1.1.32\", \"ide_version\": \"0.8.3\"}, \"document\": {\"editor_language\": \"sql\", \"language\": 41, \"line_ending\": \"\\n\", \"cursor_offset\": 1043599, \"text\": \"ENTIRE_FILE_HERE\"}
(api key and text have been cropped out just to be safe)
If I enable treesitter highlight again the error disappear but then the editor became unusable, it would be great to fix this issue.
Let me know if you need something else to help debug this issue :).
It need it to suggest the whole function (Codeium can do it), but this plugin only suggests 1 line at a time.
At first I thought it was related to #20, but it doesn't seem like it.
Basically, in my command history I have the following (taken from main.shada
file):
@ Description_ Value
- history type CMD
- contents "set lines=100<89>"
When I am in the command window q:
, editing something that will trigger completion will make codeium fail with the following:
Error detected while processing TextChangedI Autocommands for "*":
Error executing lua callback: Vim:E474: String "<89>
stack traceback:
[C]: in function 'json_encode'
...g/.local/share/nvim/lazy/codeium.nvim/lua/codeium/io.lua:409: in function 'post'
.../.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:146: in function 'request'
.../.local/share/nvim/lazy/codeium.nvim/lua/codeium/api.lua:287: in function 'request_completion'
...ocal/share/nvim/lazy/codeium.nvim/lua/codeium/source.lua:103: in function 'complete'
...jemag/.local/share/nvim/lazy/nvim-cmp/lua/cmp/source.lua:325: in function 'complete'
...e/jemag/.local/share/nvim/lazy/nvim-cmp/lua/cmp/core.lua:289: in function 'complete'
...e/jemag/.local/share/nvim/lazy/nvim-cmp/lua/cmp/core.lua:169: in function 'callback'
...e/jemag/.local/share/nvim/lazy/nvim-cmp/lua/cmp/core.lua:219: in function 'autoindent'
...e/jemag/.local/share/nvim/lazy/nvim-cmp/lua/cmp/core.lua:161: in function 'on_change'
...e/jemag/.local/share/nvim/lazy/nvim-cmp/lua/cmp/init.lua:313: in function 'callback'
...local/share/nvim/lazy/nvim-cmp/lua/cmp/utils/autocmd.lua:49: in function 'emit'
...local/share/nvim/lazy/nvim-cmp/lua/cmp/utils/autocmd.lua:23: in function <...local/share/nvim/lazy/nvim-cmp/lua/cmp/utils/autocmd.lua:22>
What seems to happen is that the param.body
contains my history, which in turn contains this <89>
char which will then fail the vim.fn.json_encode
from : https://github.com/jcdickinson/codeium.nvim/blob/55fa67bd316e2a4d312b11d68a2c34f898925a7f/lua/codeium/io.lua#L403-L408
Not sure what is the best approach, but I am guessing that params.body
probably needs to be sanitized before being passed to vim.fn.json_encode
to prevent this kind of errors.
I see here the symbol_map for nvim_cmp is set with one mapping: Suggestion
. Does Suggestion
correspond only to codeium's suggestions?
I'm getting the following errors from the log:
[ERROR Sun Jan 29 22:43:16 2023] ...m/site/pack/packer/start/codeium.nvim/lua/codeium/io.lua:94: could not open /Users/scott/.cache/nvim/codeium/config.json : EACCES: permission denied: /Users/scott/.cache/nvim/codeium/config.json
[ERROR Sun Jan 29 22:43:26 2023] ...m/site/pack/packer/start/codeium.nvim/lua/codeium/io.lua:94: could not open /Users/scott/.cache/nvim/codeium/config.json : EACCES: permission denied: /Users/scott/.cache/nvim/codeium/config.json
[ERROR Sun Jan 29 22:45:14 2023] ...m/site/pack/packer/start/codeium.nvim/lua/codeium/io.lua:137: could not open /Users/scott/.cache/nvim/codeium/config.json : EACCES: permission denied: /Users/scott/.cache/nvim/codeium/config.json
[ERROR Sun Jan 29 22:45:33 2023] ...m/site/pack/packer/start/codeium.nvim/lua/codeium/io.lua:94: could not open /Users/scott/.cache/nvim/codeium/config.json : EACCES: permission denied: /Users/scott/.cache/nvim/codeium/config.json
[ERROR Sun Jan 29 22:47:10 2023] ...m/site/pack/packer/start/codeium.nvim/lua/codeium/io.lua:94: could not open /Users/scott/.cache/nvim/codeium/config.json : EACCES: permission denied: /Users/scott/.cache/nvim/codeium/config.json
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.