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 4 commits into
base: main
Choose a base branch
from
Draft

feat: elide intellij plugin #1505

wants to merge 4 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 building project with elide build using the "build" icon in the IDE.
  • Allow running the main entry point with elide run using the "run" icon in the IDE.
  • Register tasks in the IDE for scripts and entry points found in the manifest.
  • Add "run with Elide" action to the IDE, similar to the "run Gradle task" action.
  • Add IDE actions for all relevant Elide commands (install, build, run, project info)
  • 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.

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

All modified and coverable lines are covered by tests ✅

Project coverage is 40.50%. Comparing base (4e26cf3) to head (acf37b4).
Report is 46 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1505      +/-   ##
==========================================
- Coverage   41.99%   40.50%   -1.50%     
==========================================
  Files         680      698      +18     
  Lines       31366    32420    +1054     
  Branches     4386     4481      +95     
==========================================
- Hits        13172    13131      -41     
- Misses      16627    17761    +1134     
+ Partials     1567     1528      -39     
Flag Coverage Δ
jvm 40.50% <ø> (-1.50%) ⬇️
lib 40.50% <ø> (-1.50%) ⬇️

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

see 178 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 058dd5d...acf37b4. 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
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