Comments (3)
Closed by https://github.com/elixir-tools/next-ls/releases/tag/v0.5.0
Followup tasks created #85 #86 #87 #88 #89 #90 #91
from next-ls.
Hi @mhanberg, quick question: you are using the compilation tracer to collect information about aliases, function calls, etc. This requires, however, the current module to be compiled for you to enable this functionality. Has this been a problem? Or are you frequently compiling the code behind the scenes instead of relying on the Mix compiler exclusively?
from next-ls.
hi @josevalim!
Next LS does require a full compilation for go to def/references/workspace symbols to become fully populated (meaning, if you are starting it for the first time, or a migration is run on the sqlite database), but i haven't noticed this to be a problem. (if i do notice a problem, there is usually one or more other things going wrong, so most likely not a tracer related thing)
and yes, it utilizes the mix compiler exclusively. this is the code it uses when executing the compiler
defmodule :_next_ls_private_compiler do
@moduledoc false
@tracers Code.get_compiler_option(:tracers)
def compile do
# keep stdout on this node
Process.group_leader(self(), Process.whereis(:user))
Code.put_compiler_option(:parser_options, columns: true, token_metadata: true)
Code.put_compiler_option(:tracers, [NextLSPrivate.DepTracer | @tracers])
Mix.Task.clear()
# load the paths for deps and compile them
# will noop if they are already compiled
# The mix cli basically runs this before any mix task
# we have to rerun because we already ran a mix task
# (mix run), which called this, but we also passed
# --no-compile, so nothing was compiled, but the
# task was not re-enabled it seems
Mix.Task.rerun("deps.loadpaths")
Code.put_compiler_option(:tracers, [NextLSPrivate.Tracer | @tracers])
Mix.Task.rerun("compile", [
"--ignore-module-conflict",
"--no-protocol-consolidation",
"--return-errors"
])
rescue
e -> {:error, e}
end
end
from next-ls.
Related Issues (20)
- code lens: show number of references above module/function
- bug(completions): variables leaking from for/with
- Indexing project fails because rebar3 is not included in bundled Elixir HOT 4
- completions: behaviour callbacks HOT 1
- Nix mix FOD deps has mismatched sha256 hashes on lattes release (0.21.1) HOT 3
- Missing hex in bundled elixir (bad MIX_HOME?) HOT 4
- Missing error message when formatting fails
- "Do you want the application to accept incoming network connections" alert on every start on macOS
- [error] Bad RPC call to node nextls-runtime => LSP Exited => :timeout HOT 6
- Unnecessary (?) completions on "do|" HOT 8
- Execute commands on emacs HOT 6
- bug(definition): exception when gathering variables
- Failed to load metadata on file opening (nvim/0.10) HOT 1
- "expected either either a list of a %GenLSP.Structures.SymbolInformation{}, a list of a %GenLSP.Structures.DocumentSymbol{}, or null or a %GenLSP.ErrorResponse{}" HOT 1
- The server shuts down when I close the editor HOT 13
- Boot up time HOT 1
- Completion request fails on a LiveComponent
- Suggestion: change code action for "underscoring" a variable to "rename to _var_name" HOT 1
- bug: alias references use alias instead of full name when the module is aliased int he module but the alias isnt used
- No autocompletion for fields in %__MODULE__{}
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from next-ls.