Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(elixir): compiler diagnostics #8

Merged
merged 1 commit into from
Jun 18, 2023
Merged

Conversation

mhanberg
Copy link
Collaborator

@mhanberg mhanberg commented Jun 17, 2023

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
Loading

@mhanberg
Copy link
Collaborator Author

Current dependencies on/for this PR:

This comment was auto-generated by Graphite.

@mhanberg mhanberg force-pushed the 2023-06-17-elixir-diagnostics branch from 639f59f to 43bace3 Compare June 18, 2023 05:35
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant