Skip to content

feat: add Spark integration - #835

Draft
doorgan wants to merge 3 commits into
mainfrom
doorgan/ash-support
Draft

feat: add Spark integration#835
doorgan wants to merge 3 commits into
mainfrom
doorgan/ash-support

Conversation

@doorgan

@doorgan doorgan commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

This is an experiment I started over the weekend, and I think it's very viable

It implements support for Spark with the skeleton for an integrations system. Rather than a plugin system, it's just some file organization and integration points to make it easier for contributors to figure out how to add other integrations. The main assumption I am making is that user integrations will always be managed by the Engine. I do not know what a proper extensible plugin system will look like, but I do foresee it running in the engine and be contained within the engine.

RIght now there's two integration points: beam indexing, and completions, which is what the Spark integration needs.

During indexing, the beam data is passed to the enabled integrations, which produce indexer entries specific to them via the new :integration subtype and :metadata field for arbitrary information.

When requesting completions, integrations also run against the completion request and can either replace, augment or leave untouched the list of completions provided by core expert. Integration completions are returned at the top of the list as they are more likely(in my opinion) to be what the user expects, and we treat the core expert completions are generic completions for that context.

As for the Spark integration itself, it takes advantage of Spark compiling all its DSL as data within the compiled module, so the indexer basically extracts all the DSL metadata from the beam and converts it to integration entires. The completion side of it figures out the cursor context and provides the appropriate completions and docs from the DSL.

For example, for the Ash framework, if the module you are editing has use Ash.Resource, the Spark integration will:

  • provide completions for actions, attributes, etc:
Screenshot 2026-08-04 at 5 25 34 AM
  • provide completions for things inside a DSL block:
Screenshot 2026-08-04 at 5 26 11 AM Screenshot 2026-08-04 at 5 26 40 AM Screenshot 2026-08-04 at 5 27 08 AM
  • Ash.create completions
Screenshot 2026-08-04 at 6 36 41 AM

@doorgan
doorgan force-pushed the doorgan/ash-support branch from 32ba7e7 to 64414b3 Compare August 4, 2026 09:35

@zachdaniel zachdaniel left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤤

@doorgan doorgan linked an issue Aug 10, 2026 that may be closed by this pull request
Base automatically changed from doorgan/compiler-tracer-defs to main August 13, 2026 15:15
@doorgan
doorgan force-pushed the doorgan/ash-support branch from 64414b3 to fccd00f Compare August 13, 2026 20:02
@doorgan
doorgan force-pushed the doorgan/ash-support branch from fccd00f to ea7ce5b Compare August 13, 2026 20:21
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.

Autocompletions for Ash

2 participants