Skip to content

java.project.sourcePaths Setting Fails to Exclude Test Directory from References and Call Hierarchy #1408

Open

Description

@peterxiemin

Description
Describe the bug

When configuring the java.project.sourcePaths setting in settings.json to exclude the test directory (e.g., src/test/java) from being indexed, the "Find All References" and "Call Hierarchy" features still include results from the test directory. This persists even after cleaning the language server workspace and restarting VS Code.

To Reproduce

Steps to reproduce the behavior:

Open a Java project in VS Code (e.g., a Maven project with src/main/java and src/test/java).
Add the following to settings.json (workspace scope):
json
Wrap
Copy
{
"java.project.sourcePaths": ["src/main/java"]
}
Run Java: Clean Language Server Workspace and restart VS Code.
Right-click a class in src/main/java and select "Find All References" or "Call Hierarchy."
Observe that references from src/test/java are still included in the results.
Expected behavior

The java.project.sourcePaths setting should limit the scope of "Find All References" and "Call Hierarchy" to only the specified directories (e.g., src/main/java), excluding src/test/java.

Actual behavior

References and call hierarchy results still include files from src/test/java, despite the java.project.sourcePaths configuration.

Environment

OS: [e.g., Windows 11, macOS 14, Ubuntu 22.04]
VS Code version: [e.g., 1.87.0]
Java extension version: [e.g., redhat.java v1.XX.X]
JDK version: [e.g., OpenJDK 17]
Project type: [e.g., Maven, Gradle, or plain Java project]
Additional context

No .classpath file exists in the project.
Cleaning the language server cache (Java: Clean Language Server Workspace) and manually deleting the cache folder (e.g., ~/.vscode/extensions/redhat.java-/server/data) did not resolve the issue.
The project structure is standard (e.g., src/main/java for source, src/test/java for tests).
Possible workaround

Manually removing src/test/java from the source path via the "Java Projects" view works temporarily, but this is not a persistent solution across sessions.

Suggested fix

Ensure the java.project.sourcePaths setting is respected by the language server when generating references and call hierarchy, excluding unspecified directories like src/test/java.

Activity

  1. github-actions commented on Nov 4, 2025

    @github-actions

    Hi xiemin (@peterxiemin), I'm an AI Support assistant here to help with your issue. While the team reviews your request, I wanted to provide some possible tips and documentation that might help you in the meantime.

    Current status

    This is a known limitation: java.project.sourcePaths controls which folders are imported as compilation sources but isn’t yet respected by the language server when computing references or call hierarchies. There is no built-in setting to exclude test code from those features.

    Workarounds

    • Use VS Code’s folder-exclusion settings to keep tests out of search and navigation:
      // settings.json (workspace)
      "files.exclude": {
        "src/test/java": true
      },
      "search.exclude": {
        "src/test/java": true
      }
    • Move tests into a separate folder or workspace folder so they aren’t in the same root as your main code.
    • Manually remove src/test/java in the Java Projects view after each workspace start (not persistent).

    Next steps

    This is a feature request/bug for the Java language server. Please star or comment on the issue to track progress:

    Other references with low confidence

    The team will respond to your issue shortly. I hope these suggestions are helpful in the meantime. If this comment helped you, please give it a 👍. If the suggestion was not helpful or incorrect, please give it a 👎. Your feedback helps us improve!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions