This repository was archived by the owner on Oct 8, 2025. It is now read-only.
feat(elixir): compiler diagnostics #8
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.

Introduce the "extension" concept and creates the ElixirExtension, which
provides Elixir compiler diagnostics.
TODO: Correct the column information on the diagnostics. I think there
are some commits on main that fix some of this. But there are Tokenizer
diagnostics that need some massaging as well.
The interface for extensions also needs to to be finalized.
Extension diagram
sequenceDiagram NextLS->>ExtensionFoo: start_child NextLS->>ExtensionBar: start_child NextLS->>NextLS.Runtime: start_child NextLS-->>Task.Supervisor: wait for runtime loop Until Runtime Ready Task.Supervisor->>NextLS.Runtime: ready? NextLS.Runtime->>Task.Supervisor: no end NextLS.Runtime->>Task.Supervisor: yes Task.Supervisor-->>NextLS: ready! NextLS-->>Task.Supervisor: ask to compile Task.Supervisor->>NextLS.Runtime: compile par Runtime to ExtensionFoo NextLS.Runtime->>ExtensionFoo: broadcast compiler diagnostics ExtensionFoo->>DiagnosticCache: put ExtensionFoo->>NextLS: publish1 and Runtime to ExtensionBar NextLS.Runtime->>ExtensionBar: broadcast compiler diagnostics ExtensionBar->>DiagnosticCache: put ExtensionBar->>NextLS: publish2 end NextLS->>Editor: PublishDiagnostics2 NextLS->>Editor: PublishDiagnostics1