redhat-developer / redhat-developer/vscode-java

Module configuration support

Open
#4,342 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
2.3k
Forks
546
Avg merge
20h 1m
Merged PRs (30d)
11

Description

Type: Feature Request

Feature Request: Support for Classpath Configuration per Module
Summary
The Read Heat extension currently supports only a single workpsace classpath configuration. This becomes limiting in multi‑module Java projects, where each module may require a different classpath. I would like to propose extending the configuration model to align with the standard VS Code configuration hierarchy: User → Workspace → Module (new).

Problem Description
In complex Java workspaces, especially those containing multiple independent modules, the extension does not allow defining a classpath per module. As a result:

  • All modules must share the same classpath, even when they have different dependency sets.
  • Workspace‑level configuration cannot be overridden for specific modules.
  • The extension becomes difficult to use in real‑world multi‑module setups.
    For example, I may have a workspace configured on User level for JDK 21, but a specific workpsace require JDK 1.8 and each module requires a different classpath or additional libraries. Currently, there is no way to express this.

Proposed Solution
Introduce a hierarchical configuration model consistent with VS Code’s philosophy:

  1. User-level configuration
    Global defaults for all workspaces.
  2. Workspace-level configuration
    Overrides user settings for the current workspace.
  3. Module-level configuration
    A new level of configuration that applies to a specific Java module and can override both workspace and user settings.
    This would allow each module to define its own classpath while still inheriting defaults when appropriate.

Expected Behavior

  • If a module defines its own classpath, the extension uses that configuration.
  • If not, the workspace configuration is used.
  • If neither module nor workspace defines a classpath, the user-level configuration applies.
  • This mirrors how VS Code handles settings for other languages and extensions.

Benefits

  • Better support for multi-module Java projects.
  • Cleaner and more maintainable configuration.
  • Behavior consistent with VS Code’s established configuration hierarchy.
  • Allows mixed JDK environments or module-specific dependency sets.

Extension version: 1.52.0
VS Code version: Code 1.109.4 (c3a26841a84f20dfe0850d0a5a9bd01da4f003ea, 2026-02-16T15:35:57.932Z)
OS version: Windows_NT x64 10.0.26200
Modes:

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue does not name configuration files, tests, or implementation entry points. Start by locating the extension's VS Code configuration handling and existing workspace/classpath settings, then determine how module-level overrides would fit the current model. Done should include module-specific classpaths with workspace and user fallback behavior, plus tests for the precedence rules.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, typescript, vscode
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.