elixir-tools / elixir-tools.vscode

Visual Studio Code extension for Elixir
https://marketplace.visualstudio.com/items?itemName=elixir-tools.elixir-tools
Other
87 stars 9 forks source link

【Bug?】Cannot "go to definition" for multiple projects in one workspace #85

Closed tt67wq closed 3 months ago

tt67wq commented 3 months ago
image

If you add multiple elixir projects to the same workspace, only one of them can successfully "go to definition"

mhanberg commented 3 months ago

Open them in different workspaces.

mhanberg commented 3 months ago

Going to close as this is normal behavior but feel free to keep discussing

mhanberg commented 3 days ago

To clarify my early comment "Open them in different workspaces", what I meant was, open them in different folders inside a workspace.

Which in hindsight, you seem to have done based on the screenshot, so not entirely sure what it wasn't working, but I am unable to reproduce.

rvonzimr commented 2 days ago

@mhanberg I just did a little minimal repro of a vscode workspace with two separate elixir projects. I ran the Developer: Restart Extension Host and tailed the log of whatever next_ls log file existed. I noticed that:

mhanberg commented 2 days ago

Can you share the repro?

rvonzimr commented 2 days ago

Of course! here's the repro I have: https://github.com/rvonzimr/nextls-repro

let me know if you would find anything else useful!

Apologies for discussing cross issue now, but this repro didn't hit the problem in https://github.com/elixir-tools/elixir-tools.vscode/issues/95 unfortunately (my original intent) :\

Though I did find some more weirdness having two elixir files open (one from each app) and then restarting the extension host?

[Trace - 1:48:26 PM] Received notification 'window/logMessage'.
Params: {
    "message": "** (RuntimeError) Failed to parse!\n    (next_ls 0.23.0) lib/next_ls/document_symbol.ex:31: NextLS.DocumentSymbol.fetch/1\n    (next_ls 0.23.0) lib/next_ls.ex:253: NextLS.handle_request/2\n    (gen_lsp 0.10.0) lib/gen_lsp.ex:350: anonymous fn/2 in GenLSP.loop/3\n    (telemetry 1.2.1) /Users/runner/work/next-ls/next-ls/deps/telemetry/src/telemetry.erl:321: :telemetry.span/3\n    (gen_lsp 0.10.0) lib/gen_lsp.ex:349: anonymous fn/7 in GenLSP.loop/3\n    (gen_lsp 0.10.0) lib/gen_lsp.ex:553: GenLSP.attempt/4\n    (stdlib 6.0) proc_lib.erl:329: :proc_lib.init_p_do_apply/3\n",
    "type": 1
}

[Error - 1:48:26 PM] ** (RuntimeError) Failed to parse!
    (next_ls 0.23.0) lib/next_ls/document_symbol.ex:31: NextLS.DocumentSymbol.fetch/1
    (next_ls 0.23.0) lib/next_ls.ex:253: NextLS.handle_request/2
    (gen_lsp 0.10.0) lib/gen_lsp.ex:350: anonymous fn/2 in GenLSP.loop/3
    (telemetry 1.2.1) /Users/runner/work/next-ls/next-ls/deps/telemetry/src/telemetry.erl:321: :telemetry.span/3
    (gen_lsp 0.10.0) lib/gen_lsp.ex:349: anonymous fn/7 in GenLSP.loop/3
    (gen_lsp 0.10.0) lib/gen_lsp.ex:553: GenLSP.attempt/4
    (stdlib 6.0) proc_lib.erl:329: :proc_lib.init_p_do_apply/3

I am still getting completions from app_a, but not app_b

mhanberg commented 2 days ago

I am still getting completions from app_a, but not app_b

you have a compiler error in app b, you have an extra tuple in the deps list, which doesn't follow the proper dep format so it fails to boot.

i removed that and it seems to work CleanShot 2024-07-03 at 11 20 46@2x

for some reason definition isn't working from app b to app a, even tho references and hover are working, will investigate that.