Skip to content

#2180: Add *_EXTRA_PLUGINS variable to install extra IDE plugins per user - #2237

Merged
hohwille merged 14 commits into
devonfw:mainfrom
Paras14:2180-plugins-extra-variable-to-install-per-user
Aug 21, 2026
Merged

#2180: Add *_EXTRA_PLUGINS variable to install extra IDE plugins per user#2237
hohwille merged 14 commits into
devonfw:mainfrom
Paras14:2180-plugins-extra-variable-to-install-per-user

Conversation

@Paras14

@Paras14 Paras14 commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

This PR fixes #2180

Implemented changes:

  • Added the tool-specific variable «TOOL»_EXTRA_PLUGINS (e.g. VSCODE_EXTRA_PLUGINS=eslint,cpp-tools,docker) allowing a user to activate additional plugins without modifying the shared project settings.
  • Values refer to the filename of the plugin properties file without the .properties extension, not to the id inside it. Unresolvable entries are skipped with a warning so a single stale entry cannot break the installation of the remaining plugins.
  • Implemented in PluginBasedCommandlet.getPlugins() rather than in a specific IDE commandlet, so it applies to Eclipse, VSCode and all IntelliJ-based IDEs. Plugins activated this way are reinstalled automatically when plugins are purged, unlike plugins installed manually in the IDE.
  • Documented in documentation/plugin.adoc and documentation/variables.adoc.
  • Note: removing an entry from «TOOL»_EXTRA_PLUGINS does not uninstall the plugin (the marker file survives). This is documented; resetting is done via --force-plugin-reinstall.

Testing instructions

  1. Build and activate this branch locally: export IDE_ROOT=/your/ide/root && ./build-local-dev.sh (revert afterwards with ideasy upgrade --mode=stable).
  2. In any IDEasy project, run ide vscode and note a plugin logged as Omitting installation of inactive plugin icons (...), plus the plugin count in the Install plugin ... (n/m) steps.
  3. Add to $IDE_HOME/conf/ide.properties:
    VSCODE_EXTRA_PLUGINS=icons
  4. Run ide vscode again. Expected: Start: Install plugin icons (n/m) with m one higher than in step 2, and the extension present under $IDE_HOME/plugins/vscode. The shared settings/ directory is untouched (git status inside it stays clean).
  5. Replace the value with the plugin's id instead of its filename, e.g. VSCODE_EXTRA_PLUGINS=vscode-icons-team.vscode-icons, and run again. Expected: a warning that the plugin is undefined, and icons is not installed, the variable takes filenames only.
  6. Set VSCODE_EXTRA_PLUGINS=icons,typo-does-not-exist and run again. Expected: one warning for the unknown entry, icons installs anyway.
  7. The same works for other IDEs, e.g. INTELLIJ_EXTRA_PLUGINS=watchers (close IntelliJ first, IDEasy calls idea64.exe to install plugins).

Checklist for this PR

Make sure everything is checked before merging this PR. For further info please also see
our DoD.

  • When running mvn clean test locally all tests pass and build is successful
  • PR title is of the form #«issue-id»: «brief summary» (e.g. #921: fixed setup.bat). If no issue ID exists, title only.
  • PR top-level comment summarizes what has been done and contains link to addressed issue(s)
  • PR and issue(s) have suitable labels
  • Issue is set to In Progress and assigned to you or there is no issue (might happen for very small PRs)
  • You followed all coding conventions
  • You have added the issue implemented by your PR in CHANGELOG.adoc unless issue is labeled
    with internal
  • You have formulated clear instructions on how to test your contribution under "Testing instructions"

@github-project-automation github-project-automation Bot moved this to 🆕 New in IDEasy board Jul 30, 2026
@Paras14 Paras14 self-assigned this Jul 30, 2026
@Paras14 Paras14 moved this from 🆕 New to Team Review in IDEasy board Jul 30, 2026
@Paras14 Paras14 added enhancement New feature or request android-studio Android Studio IDE from Jet-Brains vscode Microsoft visual studio code eclipse related to Eclipse IDE intellij IntelliJ IDE from Jet-Brains plugins related to plugins (for Eclipse, Intellij, VSCode, etc.) pycharm python IDE integration ready-to-implement labels Jul 30, 2026

@Ali-Shariati-Najafabadi Ali-Shariati-Najafabadi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Nice work, this does exactly what #2180 asked for and it's implemented generically so it covers Eclipse, VSCode and the IntelliJ based IDEs. I pulled the branch, built it and ran PluginBasedCommandletTest locally and all tests pass.

Comment thread cli/src/main/java/com/devonfw/tools/ide/tool/plugin/PluginBasedCommandlet.java Outdated
Comment thread cli/src/main/java/com/devonfw/tools/ide/tool/plugin/PluginBasedCommandlet.java Outdated
@Ali-Shariati-Najafabadi Ali-Shariati-Najafabadi moved this from Team Review to 👀 In review in IDEasy board Aug 3, 2026

@hohwille hohwille left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@Paras14 thanks for your PR. Great work that you implemented this feature including a proper JUnit test with its own test-project. Nice job 👍
I should have already reviewed the story to question the variable name before implementation but I am always short on time so things just happen.
Also I left a design improvement proposal that I hope you can implement without much effort to further improve. Thanks in advance.

Comment thread cli/src/main/java/com/devonfw/tools/ide/tool/plugin/ToolPlugins.java Outdated
Comment thread cli/src/main/java/com/devonfw/tools/ide/tool/plugin/ToolPluginDescriptor.java Outdated
Comment thread documentation/plugin.adoc Outdated
Comment thread CHANGELOG.adoc Outdated
@hohwille hohwille added this to the release:2026.08.002 milestone Aug 10, 2026
@hohwille hohwille changed the title #2180: Add *_PLUGINS_EXTRA variable to install extra IDE plugins per user #2180: Add *_EXTRA_PLUGINS variable to install extra IDE plugins per user Aug 13, 2026
Paras14 and others added 3 commits August 13, 2026 17:23
@coveralls

coveralls commented Aug 14, 2026

Copy link
Copy Markdown
Collaborator

Coverage Report for CI Build 32478854936

Coverage decreased (-0.002%) to 73.563%

Details

  • Coverage decreased (-0.002%) from the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • 13 coverage regressions across 3 files.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

13 previously-covered lines in 3 files lost coverage.

File Lines Losing Coverage Coverage
com/devonfw/tools/ide/tool/plugin/PluginBasedCommandlet.java 11 87.66%
com/devonfw/tools/ide/tool/ide/IdeToolCommandlet.java 1 78.69%
com/devonfw/tools/ide/version/VersionSegment.java 1 91.08%

Coverage Stats

Coverage Status
Relevant Lines: 17780
Covered Lines: 13682
Line Coverage: 76.95%
Relevant Branches: 7881
Covered Branches: 5195
Branch Coverage: 65.92%
Branches in Coverage %: Yes
Coverage Strength: 3.28 hits per line

💛 - Coveralls

@hohwille hohwille left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@Paras14 thanks for your update. Now things are clean and almost perfect 👍
I left some final remarks easy to address but then we are finally merge.

Comment thread cli/src/main/java/com/devonfw/tools/ide/tool/plugin/PluginBasedCommandlet.java Outdated
Comment thread cli/src/test/resources/ide-projects/extra-plugins/project/workspaces/main/readme Outdated
Comment thread CHANGELOG.adoc Outdated

@hohwille hohwille left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@Paras14 Perfect for merge now 👍

@hohwille
hohwille merged commit 9e5968a into devonfw:main Aug 21, 2026
3 checks passed
@github-project-automation github-project-automation Bot moved this from 👀 In review to ✅ Done in IDEasy board Aug 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

android-studio Android Studio IDE from Jet-Brains eclipse related to Eclipse IDE enhancement New feature or request intellij IntelliJ IDE from Jet-Brains plugins related to plugins (for Eclipse, Intellij, VSCode, etc.) pycharm python IDE integration ready-to-implement vscode Microsoft visual studio code

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

Add *_EXTRA_PLUGINS variable to install extra IDE plugins per user

4 participants