You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Editor Plugin/LSP Client name and version: ElixirLS: Elixir support and debugger
Current behavior
I have a workspace that is a multi-root setup and each project is used as a path dependency for a Nerves firmware lib. VSCode is setup by creating a lib.code-workspace file and using Add folder to workspace when I have a new lib to include. (See Multi-root Workspace: VSCode for more info)
In the firmware project (mix nerves.new my_fw), ElixirLS will continually run indexing WorkspaceSymbols every second which causes CPU to run 94-140% (apparently you can run above 100% ¯\_(ツ)_/¯). This is happening every second or so
From the debug logs, there is a path dep my_dep which has migration files in its priv dir which it seems to be detecting in the .elixir_ls/build/my_fw_dev/lib/my_dep/priv/repo/migrations/* path.
I'm at a loss at why it would think those files are continually changed and require a reindex
Subsequently, when this particular loop happens, it will cause any other project ElixirLS process to go through the same loop when that dir was working as expected previously
Repeated ElixirLS output
[Info - 4:02:23 PM] Compile took 186 milliseconds
[Info - 4:02:23 PM] [ElixirLS Dialyzer] Checking for stale beam files
[Info - 4:02:23 PM] [ElixirLS Dialyzer] Found 0 changed files in 11 milliseconds
[Info - 4:02:23 PM] [ElixirLS Dialyzer] Analyzing 0 modules: []
[Info - 4:02:23 PM] [ElixirLS Dialyzer] Analysis finished in 10 milliseconds
[Info - 4:02:23 PM] Dialyzer analysis is up to date
[Info - 4:02:23 PM] [ElixirLS Dialyzer] Writing manifest...
[Info - 4:02:24 PM] [ElixirLS Dialyzer] Done writing manifest in 438 milliseconds.
MIX_ENV: dev
MIX_TARGET: rpi0
[Info - 4:02:24 PM] Compile took 86 milliseconds
[Info - 4:02:24 PM] [ElixirLS Dialyzer] Checking for stale beam files
[Info - 4:02:24 PM] [ElixirLS Dialyzer] Found 0 changed files in 27 milliseconds
[Info - 4:02:24 PM] [ElixirLS Dialyzer] Analyzing 0 modules: []
[Info - 4:02:24 PM] [ElixirLS Dialyzer] Analysis finished in 8 milliseconds
[Info - 4:02:24 PM] Dialyzer analysis is up to date
[Info - 4:02:24 PM] [ElixirLS WorkspaceSymbols] 0 modules need reindexing
[Info - 4:02:24 PM] [ElixirLS WorkspaceSymbols] 0 modules added to index
[Info - 4:02:24 PM] [ElixirLS WorkspaceSymbols] 0 functions added to index
[Info - 4:02:24 PM] [ElixirLS WorkspaceSymbols] 0 callbacks added to index
[Info - 4:02:24 PM] [ElixirLS WorkspaceSymbols] 0 types added to index
[Info - 4:02:24 PM] [ElixirLS Dialyzer] Writing manifest...
[Info - 4:02:25 PM] [ElixirLS Dialyzer] Done writing manifest in 390 milliseconds.
MIX_ENV: dev
MIX_TARGET: rpi0
[Info - 4:02:25 PM] Compile took 141 milliseconds
[Info - 4:02:25 PM] [ElixirLS WorkspaceSymbols] Updating index...
[Info - 4:02:25 PM] [ElixirLS Dialyzer] Checking for stale beam files
[Info - 4:02:25 PM] [ElixirLS Dialyzer] Found 0 changed files in 10 milliseconds
[Info - 4:02:25 PM] [ElixirLS Dialyzer] Analyzing 0 modules: []
[Info - 4:02:25 PM] [ElixirLS Dialyzer] Analysis finished in 7 milliseconds
[Info - 4:02:25 PM] Dialyzer analysis is up to date
[Info - 4:02:25 PM] [ElixirLS Dialyzer] Writing manifest...
[Info - 4:02:25 PM] [ElixirLS Dialyzer] Done writing manifest in 416 milliseconds.
MIX_ENV: dev
MIX_TARGET: rpi0
[Info - 4:02:25 PM] Compile took 103 milliseconds
[Info - 4:02:25 PM] [ElixirLS Dialyzer] Checking for stale beam files
[Info - 4:02:26 PM] [ElixirLS Dialyzer] Found 0 changed files in 15 milliseconds
[Info - 4:02:26 PM] [ElixirLS Dialyzer] Analyzing 0 modules: []
[Info - 4:02:26 PM] [ElixirLS Dialyzer] Analysis finished in 8 milliseconds
[Info - 4:02:26 PM] Dialyzer analysis is up to date
[Info - 4:02:26 PM] [ElixirLS Dialyzer] Writing manifest...
[Info - 4:02:26 PM] [ElixirLS Dialyzer] Done writing manifest in 415 milliseconds.
@jjcarstens I'm not familiar with nerves and your repro repository is not building on my machine but I was able to reproduce it in nerves. The patch from ae40661 is fixing it for nerves. Please check if it also fixes your multi-root workspace problem.
Environment
ElixirLS: Elixir support and debugger
Current behavior
I have a workspace that is a multi-root setup and each project is used as a path dependency for a Nerves firmware lib. VSCode is setup by creating a
lib.code-workspace
file and usingAdd folder to workspace
when I have a new lib to include. (See Multi-root Workspace: VSCode for more info)In the firmware project (
mix nerves.new my_fw
), ElixirLS will continually run indexingWorkspaceSymbols
every second which causes CPU to run 94-140% (apparently you can run above 100% ¯\_(ツ)_/¯). This is happening every second or soFrom the debug logs, there is a path dep
my_dep
which has migration files in itspriv
dir which it seems to be detecting in the.elixir_ls/build/my_fw_dev/lib/my_dep/priv/repo/migrations/*
path.I'm at a loss at why it would think those files are continually changed and require a reindex
Subsequently, when this particular loop happens, it will cause any other project ElixirLS process to go through the same loop when that dir was working as expected previously
Repeated ElixirLS output
Verbose ElixirLS Trace server output
Reproduce with this example setup https://github.com/jjcarstens/elixirls-workspace-symbols
Expected behavior
Workspace symbols don't trying to index every second. Instead index only when a file has actually changed
The text was updated successfully, but these errors were encountered: