New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LSP functionality detects incorrect root directory #212
Comments
copilot.lua/lua/copilot/client.lua Line 183 in 2c942f3
|
Thanks, sorry, missed that. But why is the server reporting |
I don't think it makes sense to set I'm looking at other configurations at lspconfig now, and I'm thinking it should probably be root_dir = require("lspconfig.util").find_git_ancestor I'll test this and submit a PR if it works. |
It's set when you open vim. Are you opening vim on your home directory and later changing the directory? |
Yes, you're right. That's what's happening. If I run neovim from the project directory, it's set appropriately. |
I use LazyVim, which includes several key mappings, for instance for searching in the root directory, that rely on the LSP client detecting the correct root directory. This is the function LazyVim uses: https://github.com/LazyVim/LazyVim/blob/a72a84972d85e5bbc6b9d60a0983b37efef21b8a/lua/lazyvim/util/init.lua#L56-L89
But it seems like the Copilot LSP server is reporting my home directory as the root directory for every file it attaches to. This is for instance the result of calling
:LspInfo
from aMakefile
in one of my projects.So when Copilot is the only LSP server attached to a file, I end up searching directly in my home directory instead of the project directory.
This is the default setup LazyVim uses for copilot, which I use: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/plugins/extras/coding/copilot.lua
If I disable the plugin, then everything works fine because lazyvim then just uses cwd.
Maybe it would be possible to expose a
root_dir
setting just like many of the servers in lspconfig do (https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md)?A possible interface might be:
Or I guess the server could just not report the root directory, or default to
vim.loop.cwd()
. I'm not sure exactly if that would work.The text was updated successfully, but these errors were encountered: