Skip to content

Merge master into BETA_JAVA27 branch#2993

Merged
noopur2507 merged 21 commits into
BETA_JAVA27from
master
May 19, 2026
Merged

Merge master into BETA_JAVA27 branch#2993
noopur2507 merged 21 commits into
BETA_JAVA27from
master

Conversation

@noopur2507

@noopur2507 noopur2507 commented May 19, 2026

Copy link
Copy Markdown
Member

FIxes #2992

What it does

How to test

Author checklist

subyssurendran666 and others added 21 commits April 23, 2026 16:46
…2956)

This PR fixes an issue where @link inside Javadoc {@snippet} tags was
applied to the wrong substring during HTML rendering in Javadoc
hover/view. The anchor tag is now correctly mapped to the intended
target text instead of wrapping an incorrect partial sequence caused by
index ordering during tag insertion.

Fix: #2944
Adds support for automatically inserting a closing triple backtick when
typing ``` in Markdown comments, improving the typing experience. This
behavior is controlled by a new preference so users can enable or
disable it as needed.

Fix: #2529
Add a new option that collectively enable or disable all Code Mining
preferences all at once. The checkbox will also reflect according to the
individual preference selections.
JUnit Platform Console Standalone jars expose the platform version in
Specification-Version, while the bundled Jupiter engine version is stored
in Engine-Version-junit-jupiter. Prefer that Jupiter engine version for
junit-platform-console-standalone jars so JUnit 5 and JUnit 6 detection
uses the version of the test engine rather than the platform artifact.

Fall back to Specification-Version for the existing non-standalone cases
and leave annotation lookup/access restriction behavior unchanged.

Fixes: #2959
…#2966)

* Fix Unresolved type to ignore a guessed type binding to Object

- add check in UnresolvedElementsBaseSubProcessor.addSimilarTypeProposal
  method to ignore a guessed binding of Object for unresolved type when there
  are possible types to look at
- fix relevance when importing and adding to module so it will be
  offered sooner
- for eclipse-jdt/eclipse.jdt.core#5039
…ertEqualPositions()

SemanticTokensProviderTest.disabledHighlightingNoError can fail
due to mismatched expected and actual arrays sizes.
This change adds the arrays to the fail message,
as the actual elements are currently missing from the fail information.

See: #1432
* Add option for new formatter in ui
* Add sample text block to preview for newlines

---------

Co-authored-by: Jeff Johnston <jjohnstn@redhat.com>
- fix logic so that when a match is found that is accessible,
  return false instead of continuing to look through other access
  rules
- add new test to ImportOrganizeTest1d8
- fixes #2972
This commit removes unwanted single quotes from label links in the Preference pages
and makes links across Preference pages consistent.
Similar to the refactoring wizard, JUnit diff order was always NOT
following "traditional" Eclipse compare editor diff order (left is
"new", right is "old"), so that "natural" order expected / actual was
inconsistent with the compare editor preference, but it was based on
this preference (via CompareConfiguration).

Now the "natural" order is default, swap the sides in JUNit diff pane to
keep same order in as before left: expected, right: actual.

As expected "side effect", this patch fixes exact same problem
refactoring wizard had with wrong colors applied, where deletion and
addition were using wrong colors.

See eclipse-platform/eclipse.platform#2566
See eclipse-platform/eclipse.platform.ui#3777
See eclipse-platform/eclipse.platform.ui#3776 (comment)
Allow a -testNameFile to contain lines of the form 'ClassName:methodName' so
that an arbitrary set of methods (potentially across multiple classes) can be
discovered and executed inside a single test JVM. This avoids the
per-method setup/teardown cycles that currently occur when a user runs more
than one method via Eclipse's Test Explorer (or via vscode-java-test, which
sits on top of this protocol).

* ITestLoader gains a default loadTests(LinkedHashMap<Class<?>, List<String>>,
  ...) method that pair-wise delegates to the legacy single-method overload,
  so every existing loader keeps working unchanged.
* RemoteTestRunner.readTestNames() recognises ':' separated lines and routes
  through the new dispatch when present; class-only lines keep their previous
  semantics so older clients are unaffected.
* JUnit5TestLoader builds one LauncherDiscoveryRequest with multiple
  selectMethod selectors, letting JUnit Platform run the entire selection
  natively within a single test JVM.
* JUnit4TestLoader composes a Request.classWithoutSuiteMethod(c).filterWith()
  using a new MultiMethodFilter to express the same selection on JUnit 4.
* Both JUnitLaunchConfigurationDelegate variants relax createTestNamesFile()
  to also write IMethod elements as 'Class:method' lines, allowing the new
  behaviour to be reached via the existing -testNameFile path without any new
  protocol parameters.
- fix JUnitLaunchConfigurationTab to check for the project being
  closed to avoid causing exceptions when closed projects are not
  filtered out and instead issue error message for the configuration
- fixes #2969
)

* Add Support newline surrounding textblocks feature on quick assists
* Add tests for new quick assist
The XXX comments referenced com.ibm.icu.lang.UCharacter and
java.lang.Character behavior on Java 1.4. ICU is no longer a
dependency, and the surrogate branches contained no actual logic, so
fold the surrogate check into the outer condition and drop the stale
comments.
* Use contributed search participants in call hierarchy

Incoming calls (CallerMethodWrapper):

Replace hardcoded `new SearchParticipant[] { getDefaultSearchParticipant() }`
with `SearchEngine.getSearchParticipants()` so that incoming call searches
include results from contributed search participants registered via the
`org.eclipse.jdt.core.derivedSourceSearchParticipant` extension point. For
contributed (non-Java) elements, accept A_INACCURATE matches since JDT's
MatchLocator cannot resolve type bindings for types not compiled by ECJ.

Outgoing calls (CalleeMethodWrapper):

When the member has no Java AST (i.e. `getCompilationUnitNode()` returns
null), fall back to `DerivedSourceSearchParticipant.locateCallees()` on all
contributed participants. Each participant can report call sites within the
member's body. Returned callees are resolved to full declarations via
`resolveCallee()`, which handles METHOD, FIELD, and TYPE element types.

Outgoing calls from Java to non-Java targets (CalleeAnalyzerVisitor):

When a Java method invocation has a null ECJ binding (receiver type is from
a contributed language, not compiled by ECJ), fall back to resolveViaSearch()
which uses SearchEngine.getSearchParticipants() to find METHOD DECLARATIONS
matching the method name across all contributed participants.

Non-standard ICompilationUnit handling (CallHierarchyCore):

Guard getCompilationUnitNode() with isJavaLikeFileName() check so non-Java
source files (e.g. .kt) are not parsed as Java AST, which would produce
broken results and false positives in outgoing call analysis.

Dependency:

Bump `org.eclipse.jdt.core` dependency to `[3.46.0,4.0.0)` for the
`SearchEngine.getSearchParticipants()` and
`DerivedSourceSearchParticipant.locateCallees()` APIs added in
eclipse-jdt/eclipse.jdt.core#4938.

Depends on eclipse-jdt/eclipse.jdt.core#4938.
Companion to eclipse-jdtls/eclipse.jdt.ls#3732.
ICU is no longer a dependency of this repo, so the entries in the
'should not be loaded/activated' bundle lists are dead and can be
removed.
)

- in JavaWorkingSetUpdater.elementChange() make sure that the
  Other Projects working set is processed either as part of the
  local list or by searching for it
- for eclipse-platform/eclipse.platform.ui#2250 (comment)
The perform() method mixed pm.worked() with SubMonitor.convert() on the
same monitor, and called SubMonitor.convert(pm, 1) inside a loop. Both
patterns corrupt progress reporting: convert() resets the monitor's
remaining work, so repeated calls in a loop or after worked() discard
already-reported progress.

Replace pm.beginTask/worked/done and the in-loop SubMonitor.convert()
calls with a single SubMonitor.convert() up front, then split() for
each unit of work.
@noopur2507 noopur2507 self-assigned this May 19, 2026
@noopur2507 noopur2507 added this to the BETA_JAVA27 milestone May 19, 2026
@noopur2507

Copy link
Copy Markdown
Member Author

Same ECA validation issue as in #2958 (comment).
@SougandhS will take a look.

@noopur2507
noopur2507 merged commit 4a4e4fc into BETA_JAVA27 May 19, 2026
36 of 37 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.