Open mhanberg opened 1 year ago
We currently have an ElixirSense plugin shipped as part of spark, which provides documentation and completions for spark DSLs. It's very brittle and we have to depend on a specific ref of ElixirSense to ensure that it works.
Open to a discussion of how to do this with next-ls and make it a better experience.
Hover is implemented and i am working on completions next, so we should be able to brainstorm some extension APIs soon
i am curious as to how the custom hover stuff you need is used.
i'll take a look at the spark elixir sense plugin to see what's going on 👨🔧
I'm also interested in brainstorming nextextention api. So count me in for discussion and prototyping.
To show some capabilities of the ElixirLS extension for Spark (used by Ash Framework)
https://github.com/elixir-tools/next-ls/assets/5722339/2e459c07-3729-4426-a563-01c2a0abf760
We use option schemas to autocomplete calls to use Ash.Resource
, options list in calls to functions like Ash.create
and the DSL itself.
libraries will be able to provide their own nextensions (next-ls extensions 😎), and they should be able to provide their own hover, completions, code actions, commands, etc.
the api currently enables broadcasting diagnostics (seen in the builtin ElixirExtension and soon to be Credo and Dialyzer extensions), so this needs to be prototyped.
also need to figure out the distribution mechanism for nextensions
also need to figure out an api for when a nextension should activate.
Features