在 elixir 项目中保存文件时出错 (elixirLS.projectDir)

error when saving a file in an elixir project (elixirLS.projectDir)

使用 visual studio 代码

保存 elixir 文件时出现以下错误

No mixfile found in project. To use a subdirectory, set elixirLS.projectDir in your settings

我因此更新了 User/settings.json(在 windows 中)文件,例如

{
    "elixirLS.projectDir": "C:\CodeTraining\Elixir-intro"
}

但我仍然得到错误

有什么想法吗?

顺便说一句,我在使用Ubuntu时也有同样的错误。

ElixirLS 需要 mix 项目,它不能正常使用普通文件。所以从创建项目开始

mix new intro
cd intro
code .

现在在 intro 文件夹中 ElixirLS 会很高兴。您仍然可以在那里创建随机 文件 and/or 脚本。

自从我登陆这里寻找答案但 Vim,我将分享修复 Vim

上的错误的方法

该错误是由于语言客户端根据您打开的第一个文件错误地设置了项目根。例如,如果您首先打开 mix.exs,则会打印到 Vim 输出:

LanguageClient project root: /Users/joe/Downloads/test

但是,如果您打开其他内容(例如 lib/test.ex),您会得到以下内容:

LanguageClient project root: /Users/joe/Downloads/test/lib

因此,为了解决这个问题,请将以下内容添加到您的 .vimrc

let g:LanguageClient_rootMarkers = {
    \ 'elixir': ['mix.exs'],
    \ }

或者,如果您使用 coc.nvim,请改为将其添加到您的 .vimrc

autocmd FileType elixir let b:coc_root_patterns = ['mix.exs']

这将根据 mix.exs 的位置正确设置项目根目录,以达到 ElixirLS

的目的