Skip to content

Error with an 'uninitialised' git repository: "No mixfile found in project ... set elixirLS.projectDir in your settings" #364

@henrythebuilder

Description

@henrythebuilder

Environment

  • Elixir & Erlang versions (elixir --version):
Erlang/OTP 23 [erts-11.0.3] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1]
Elixir 1.11.0-dev (cce861e) (compiled with Erlang/OTP 23)
  • Operating system: Debian GNU/Linux 10 (buster)
  • Editor or IDE name (e.g. Emacs/VSCode): GNU Emacs 27.1
  • Editor Plugin/LSP Client name: eglot+elixir-ls (build from master (3a94455) as documented in Emacs Installation Instructions)

Troubleshooting

  • Restart your editor (which will restart ElixirLS) sometimes fixes issues
  • Stop your editor, remove the entire .elixir_ls directory, then restart your editor
    • NOTE: This will cause you to have to re-run the dialyzer build for your project

If you're experiencing high CPU usage, it is most likely Dialyzer building the PLTs; after it's done the CPU usage should go back to normal. You could also disable Dialyzer in the settings.

Reproduce step (no git)

  • Create a new Mix project with mix new empty
  • got to project dir (cd empty)
  • open a file in a subdir: es. emacs lib/empty.ex produce the error:
[eglot] Connected! Server `EGLOT (lib/elixir-mode)' now managing `elixir-mode' buffers in project `lib'.
[eglot] Server reports (type=1): No mixfile found in project. To use a subdirectory, set `elixirLS.projectDir` in your settings

with a new dir lib/.elixir_ls with only a .gitignore file

  • any file opened or created produce the error
  • remove .elixir_ls subdir does not remove error

Reproduce step (git init)

  • Create a new Mix project with mix new empty
  • got to project dir (cd empty)
  • initialise an empty repository with git init
  • open any project files
  • all work as expected 👍
[eglot] Connected! Server `EGLOT (empty/elixir-mode)' now managing `elixir-mode' buffers in project `empty'.
  • a new dir .elixir_ls found in the project root:
tree .elixir_ls/
.elixir_ls/
├── build
│   └── test
│       └── lib
│           └── empty
│               ├── consolidated
│               │   ├── Elixir.Collectable.beam
│               │   ├── Elixir.Enumerable.beam
│               │   ├── Elixir.IEx.Info.beam
│               │   ├── Elixir.Inspect.beam
│               │   ├── Elixir.List.Chars.beam
│               │   ├── Elixir.Phoenix.Param.beam
│               │   └── Elixir.String.Chars.beam
│               └── ebin
│                   ├── Elixir.Empty.beam
│                   └── empty.app
├── dialyzer_manifest_23.0.3_elixir-1.11.0-dev_test
└── dialyzer_tmp

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions