Skip to content

feat: elide intellij plugin #1505

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

Draft
wants to merge 13 commits into
base: main
Choose a base branch
from
Draft

feat: elide intellij plugin #1505

wants to merge 13 commits into from

Conversation

darvld
Copy link
Member

@darvld darvld commented Jun 30, 2025

Draft Powered by Pull Request Badge

Summary

This PR introduces an Intellij IDEA plugin providing support for Elide as an External Build System, which allows users to edit Elide projects in the IDE, build, run, and sync them.

Roadmap (initial plugin release)

The first release will have a basic but complete set of features to enable the use of Elide in simple projects. This includes most of the capabilities expected of an external build tool in Intellij IDEA (project sync, dependency management, building, and running).

This release will be focused on Kotlin and Java, support for other languages (and polyglot features) will be added later.

  • Project auto-import and sync button.
  • Read project structure (modules and content roots) from elide.pkl.
  • Inform Intellij IDEA about dependencies on disk using the lockfile.
  • Run elide install on project sync if the lockfile is not up to date or dependencies are not found on disk.
  • Allow running Elide commands from the IDE (build, run, install).
  • Suggest project entry points and scripts from the manifest in run configuration editor.
  • Add "run with Elide" action to the IDE, similar to the "run Gradle task" action.
  • Add the ability to run entry points with Elide when clicked from the "run" gutter icon.
  • Allow forcing a specific Elide distribution to be used given its path in the settings.
  • Add notification to install Elide if it is not found on PATH and no custom distribution is selected.
  • Basic highlighting of elide.pkl.
  • Run gutter icons in project manifest for entry points and scripts.

Additional features (future releases)

In the future, the plugin will be enhanced with quality-of-life features and a better integration with the rest of the languages supported by Elide.

  • Add the ability to run JVM tests with Elide.
  • Add debug capabilities for JVM languages.
  • New project wizard templates for Elide projects (using elide init or otherwise).
  • Improved integration with Pkl plugin for manifest editing.
    • Injection of fully qualified class names and file paths for entry points.
    • Injection of artifact names already declared in the manifest.
    • Gutter icon for running entry points and scripts.
    • Gutter icon for installing dependencies of all or specific ecosystems.
    • Gutter icon for performing individual artifact builds.
  • Research adding support for non-JVM languages in the IDE (parity with JVM features).
  • Research adding support for polyglot projects in the IDE (cross-language features).

@darvld darvld self-assigned this Jun 30, 2025
@darvld darvld added feature Large PRs or issues with full-blown features platform:jvm PRs and issues relating to JVM support. 🚧 WIP Works-in-progress. Blocks merge tools Issues and PRs related to tooling 🧪 labs Experimental work lang:java Issues relating to Java language support lang:pkl Relating to Pkl execution or other Pkl topics lang:kotlin Related to Kotlin lang support labels Jun 30, 2025
Copy link

codecov bot commented Jun 30, 2025

Codecov Report

Attention: Patch coverage is 0% with 42 lines in your changes missing coverage. Please review.

Project coverage is 40.02%. Comparing base (6078f29) to head (bbc1ae6).
Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
.../src/main/kotlin/elide/tooling/jvm/JvmLibraries.kt 0.00% 42 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1505      +/-   ##
==========================================
- Coverage   40.20%   40.02%   -0.19%     
==========================================
  Files         701      702       +1     
  Lines       32830    32850      +20     
  Branches     4569     4576       +7     
==========================================
- Hits        13200    13148      -52     
- Misses      18082    18159      +77     
+ Partials     1548     1543       -5     
Flag Coverage Δ
jvm 40.02% <0.00%> (-0.19%) ⬇️
lib 40.02% <0.00%> (-0.19%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...n/kotlin/elide/tooling/jvm/JvmBuildConfigurator.kt 0.00% <ø> (ø)
...lide/tooling/jvm/resolver/MavenLockfileResolver.kt 0.00% <ø> (ø)
.../src/main/kotlin/elide/tooling/jvm/JvmLibraries.kt 0.00% <0.00%> (ø)

... and 6 files with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 6078f29...bbc1ae6. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@sgammon sgammon added this to the Release R18: Beta milestone Jun 30, 2025
@darvld darvld force-pushed the feat/intellij-plugin branch from acf37b4 to bbc1ae6 Compare July 5, 2025 01:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Large PRs or issues with full-blown features 🧪 labs Experimental work lang:java Issues relating to Java language support lang:kotlin Related to Kotlin lang support lang:pkl Relating to Pkl execution or other Pkl topics platform:jvm PRs and issues relating to JVM support. tools Issues and PRs related to tooling 🚧 WIP Works-in-progress. Blocks merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants