Skip to content

Commit 8849f93

Browse files
authored
Merge branch 'master' into 2739_edit_selectall
2 parents 3c7efb6 + 93acda3 commit 8849f93

File tree

490 files changed

+3961
-6642
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

490 files changed

+3961
-6642
lines changed

.github/workflows/copilot-setup-steps.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
contents: read
1717
steps:
1818
- name: Checkout code
19-
uses: actions/checkout@v5
19+
uses: actions/checkout@v6
2020

2121
- name: Set up JDK 21
2222
uses: actions/setup-java@v5

.mvn/extensions.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
<extension>
44
<groupId>org.eclipse.tycho</groupId>
55
<artifactId>tycho-build</artifactId>
6-
<version>4.0.12</version>
6+
<version>5.0.1</version>
77
</extension>
88
</extensions>

AGENTS.md

Lines changed: 13 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
# AGENTS.md
22

3-
This file provides guidance to AI Agents (claude-code, codex, gemini cli, ...) when working with code in this repository.
3+
This file provides guidance to AI Agents.
44

55
## Repository Overview
66

7-
Eclipse Platform UI provides the UI building blocks for Eclipse IDE and Eclipse Rich Client Platform (RCP). This includes JFace, workbench, commands framework, data binding, dialogs, editors, views, perspectives, and more. Built on top of SWT (Eclipse Standard Widget Toolkit).
7+
Eclipse Platform UI provides the building blocks for Eclipse IDE and Eclipse Rich Client Platform (RCP).
8+
This includes JFace, workbench, commands framework, data binding, dialogs, editors, views, perspectives, and more. Built on top of SWT (Eclipse Standard Widget Toolkit).
89

910
**Key Facts:**
1011
- **Language:** Java 21
@@ -64,27 +65,15 @@ Each bundle contains:
6465

6566
### Critical Limitation
6667

68+
6769
Use the `-Pbuild-individual-bundles` profile:
6870

6971
```bash
70-
# Compile a single bundle
71-
cd bundles/org.eclipse.jface
72-
mvn clean compile -Pbuild-individual-bundles
73-
74-
# Run tests for a single bundle
75-
cd tests/org.eclipse.jface.tests
76-
mvn clean verify -Pbuild-individual-bundles
77-
78-
# Run specific test class
79-
mvn test -Pbuild-individual-bundles -Dtest=ViewerTestClass
80-
```
81-
82-
### Maven Configuration
72+
# Compile single bundle
73+
mvn clean compile -pl :bundle-artifact-id -Pbuild-individual-bundles -q
8374

84-
Default config in `.mvn/maven.config`:
85-
- `-Pbuild-individual-bundles` - Enable individual bundle builds
86-
- `-Dtycho.target.eager=true` - Eager target resolution
87-
- `-Dtycho.localArtifacts=ignore` - Ignore local artifacts
75+
# Example for building a single bundle
76+
mvn clean verify -Pbuild-individual-bundles mvn clean verify -pl bundles/org.eclipse.ui -DskipTests
8877

8978
### Test Properties
9079

@@ -97,22 +86,15 @@ From `pom.xml`:
9786

9887
### Running Tests
9988

100-
**⚠️ IMPORTANT:** Use `mvn verify` (NOT `mvn test`) for Tycho projects. Due to Maven Tycho lifecycle binding, tests run in the `integration-test` phase, not the `test` phase. Running `mvn test` will NOT execute tests.
89+
**⚠️ IMPORTANT:** Use `mvn verify` (NOT `mvn test`) for Tycho projects.
90+
Due to Maven Tycho lifecycle binding, tests run in the `integration-test` phase, not the `test` phase. Running `mvn test` will NOT execute tests.
10191

10292
```bash
103-
# Run all tests in a specific test bundle
104-
cd tests/org.eclipse.jface.tests
105-
mvn clean verify -Pbuild-individual-bundles
106-
107-
# Run without clean (faster if no changes to dependencies)
108-
mvn verify -Pbuild-individual-bundles
109-
11093
# Run tests for a specific test bundle from repository root
111-
mvn clean verify -pl :org.eclipse.jface.tests -Pbuild-individual-bundles
94+
mvn clean verify -pl :org.eclipse.ui.tests -Pbuild-individual-bundles
11295
11396
# Run specific test class within a bundle
114-
cd tests/org.eclipse.jface.tests
115-
mvn clean verify -Pbuild-individual-bundles -Dtest=StructuredViewerTest
97+
mvn clean verify -pl :org.eclipse.ui.tests -Pbuild-individual-bundles -Dtest=StructuredViewerTest
11698
11799
# Skip tests during compilation
118100
mvn clean compile -Pbuild-individual-bundles -DskipTests
@@ -125,40 +107,11 @@ mvn clean compile -Pbuild-individual-bundles -DskipTests
125107
### JUnit Guidelines
126108

127109
- Prefer JUnit 5 (`org.junit.jupiter.api.*`) for new tests
128-
- Use `@BeforeEach`/`@AfterEach` instead of `@Before`/`@After`
129-
- Use `@Disabled` instead of `@Ignore`
130-
- Use `Assertions.*` instead of `Assert.*`
131-
- JUnit 3 usage is limited to compatibility helpers (e.g., `org.eclipse.ui.tests.harness`)
132-
133-
**Common test pattern:**
134-
```java
135-
@BeforeEach
136-
public void setUp() {
137-
fDisplay = Display.getDefault();
138-
fShell = new Shell(fDisplay);
139-
}
140-
141-
@AfterEach
142-
public void tearDown() {
143-
if (fShell != null) {
144-
fShell.dispose();
145-
}
146-
}
147-
148-
@Test
149-
public void testSomething() {
150-
// Test implementation
151-
Assertions.assertEquals(expected, actual);
152-
}
153-
```
154110

155111
## Common Development Commands
156112

157113
### Compilation
158114

159-
```bash
160-
# Compile single bundle
161-
mvn clean compile -pl :bundle-artifact-id -Pbuild-individual-bundles -q
162115

163116
# Compile and run tests
164117
mvn clean test -pl :bundle-artifact-id -Pbuild-individual-bundles
@@ -192,29 +145,7 @@ Import-Package: org.osgi.service.event
192145

193146
### 2. SWT Resource Disposal
194147

195-
**Must dispose SWT resources** (except system colors/fonts):
196-
197-
```java
198-
// CORRECT - dispose in finally
199-
Shell shell = new Shell();
200-
try {
201-
// use shell
202-
} finally {
203-
shell.dispose();
204-
}
205-
206-
// CORRECT - dispose custom colors/fonts/images
207-
Color color = new Color(display, 255, 0, 0);
208-
try {
209-
// use color
210-
} finally {
211-
color.dispose();
212-
}
213-
214-
// INCORRECT - system resources don't need disposal
215-
Color systemColor = display.getSystemColor(SWT.COLOR_RED);
216-
// No dispose needed
217-
```
148+
**Must dispose SWT resources** (except colors and system fonts):
218149

219150
### 3. UI Thread Requirements
220151

@@ -226,11 +157,6 @@ Display.getDefault().asyncExec(() -> {
226157
label.setText("Updated");
227158
});
228159

229-
// Run synchronously (blocks until complete)
230-
Display.getDefault().syncExec(() -> {
231-
button.setEnabled(false);
232-
});
233-
234160
// Check if on UI thread
235161
if (Display.getCurrent() != null) {
236162
// Already on UI thread
@@ -266,47 +192,6 @@ source.. = src/
266192
output.. = bin/
267193
```
268194

269-
## Common Patterns
270-
271-
### Data Binding
272-
273-
```java
274-
DataBindingContext ctx = new DataBindingContext();
275-
276-
// Bind widget to model
277-
ctx.bindValue(
278-
WidgetProperties.text(SWT.Modify).observe(textWidget),
279-
BeanProperties.value("propertyName").observe(model)
280-
);
281-
282-
// Dispose when done
283-
ctx.dispose();
284-
```
285-
286-
### JFace Viewers
287-
288-
```java
289-
TableViewer viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
290-
viewer.setContentProvider(ArrayContentProvider.getInstance());
291-
viewer.setLabelProvider(new LabelProvider() {
292-
@Override
293-
public String getText(Object element) {
294-
return element.toString();
295-
}
296-
});
297-
viewer.setInput(myList);
298-
```
299-
300-
### Eclipse Commands
301-
302-
Commands are defined in `plugin.xml` and handled via handlers:
303-
304-
```java
305-
@Execute
306-
public void execute(IEclipseContext context) {
307-
// Command implementation
308-
}
309-
```
310195

311196
## CI/GitHub Workflows
312197

bundles/org.eclipse.e4.ui.bindings/.classpath

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<classpath>
3-
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
3+
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-21"/>
44
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
55
<classpathentry kind="src" path="src"/>
66
<classpathentry kind="output" path="bin"/>

bundles/org.eclipse.e4.ui.bindings/.settings/org.eclipse.jdt.core.prefs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nul
2424
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
2525
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
2626
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
27-
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
27+
org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
2828
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
29-
org.eclipse.jdt.core.compiler.compliance=17
29+
org.eclipse.jdt.core.compiler.compliance=21
3030
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
3131
org.eclipse.jdt.core.compiler.debug.localVariable=generate
3232
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -132,7 +132,7 @@ org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
132132
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
133133
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
134134
org.eclipse.jdt.core.compiler.release=enabled
135-
org.eclipse.jdt.core.compiler.source=17
135+
org.eclipse.jdt.core.compiler.source=21
136136
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
137137
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
138138
org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16

bundles/org.eclipse.e4.ui.bindings/META-INF/MANIFEST.MF

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
Manifest-Version: 1.0
22
Bundle-ManifestVersion: 2
33
Bundle-SymbolicName: org.eclipse.e4.ui.bindings;singleton:=true
4-
Bundle-Version: 0.14.800.qualifier
4+
Bundle-Version: 0.15.0.qualifier
55
Bundle-Name: %pluginName
66
Bundle-Vendor: %providerName
77
Bundle-Localization: plugin
8-
Bundle-RequiredExecutionEnvironment: JavaSE-17
8+
Bundle-RequiredExecutionEnvironment: JavaSE-21
99
Bundle-ActivationPolicy: lazy
1010
Import-Package: jakarta.annotation;version="[2.1.0,3.0.0)",
1111
jakarta.inject;version="[2.0.0,3.0.0)",
@@ -16,7 +16,7 @@ Import-Package: jakarta.annotation;version="[2.1.0,3.0.0)",
1616
org.eclipse.jface.bindings.keys,
1717
org.eclipse.jface.dialogs,
1818
org.eclipse.jface.window
19-
Require-Bundle: org.eclipse.swt;bundle-version="[3.6.0,4.0.0)",
19+
Require-Bundle: org.eclipse.swt;bundle-version="[3.133.0,4.0.0)",
2020
org.eclipse.core.commands;bundle-version="[3.5.0,4.0.0)",
2121
org.eclipse.e4.core.contexts;bundle-version="1.0.0",
2222
org.eclipse.e4.core.di;bundle-version="1.1.0",

bundles/org.eclipse.e4.ui.css.core/src/org/eclipse/e4/ui/css/core/impl/sac/CSSDocumentHandlerImpl.java

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ public void ignorableAtRule(String atRule) throws CSSException {
9191
if (!getNodeStack().empty()) {
9292
((CSSRuleListImpl) getNodeStack().peek()).add(ir);
9393
} else {
94-
// _getNodeStack().push(ir);
9594
nodeRoot = ir;
9695
}
9796
}
@@ -100,10 +99,6 @@ public void ignorableAtRule(String atRule) throws CSSException {
10099
public void namespaceDeclaration(String prefix, String uri)
101100
throws CSSException {
102101
//TODO replace with eclipse logging
103-
// if (logger.isDebugEnabled()) {
104-
// logger.debug("Declare namespace [prefix=" + prefix + ", uri=" + uri
105-
// + "]");
106-
// }
107102
}
108103

109104
@Override
@@ -116,7 +111,6 @@ public void importStyle(String uri, SACMediaList media,
116111
if (!getNodeStack().empty()) {
117112
((CSSRuleListImpl) getNodeStack().peek()).add(ir);
118113
} else {
119-
// _getNodeStack().push(ir);
120114
nodeRoot = ir;
121115
}
122116
}
@@ -125,27 +119,12 @@ public void importStyle(String uri, SACMediaList media,
125119
public void startMedia(SACMediaList media) throws CSSException {
126120

127121
ignore = true;
128-
// // Create the media rule and add it to the rule list
129-
// CSSMediaRuleImpl mr = new CSSMediaRuleImpl(parentStyleSheet, null,
130-
// new MediaListImpl(media));
131-
// if (!getNodeStack().empty()) {
132-
// ((CSSRuleListImpl) getNodeStack().peek()).add(mr);
133-
// }
134-
//
135-
// // Create the rule list
136-
// CSSRuleListImpl rules = new CSSRuleListImpl();
137-
// mr.setRuleList(rules);
138-
// getNodeStack().push(mr);
139-
// getNodeStack().push(rules);
140122
}
141123

142124
@Override
143125
public void endMedia(SACMediaList media) throws CSSException {
144126

145127
ignore = false;
146-
// // Pop the rule list and media rule nodes
147-
// getNodeStack().pop();
148-
// nodeRoot = getNodeStack().pop();
149128
}
150129

151130
@Override
@@ -176,26 +155,11 @@ public void endPage(String name, String pseudo_page) throws CSSException {
176155
@Override
177156
public void startFontFace() throws CSSException {
178157
ignore = true;
179-
// // Create the font face rule and add it to the rule list
180-
// CSSFontFaceRuleImpl fontFaceRule = new CSSFontFaceRuleImpl(
181-
// parentStyleSheet, null);
182-
// if (!getNodeStack().empty()) {
183-
// ((CSSRuleListImpl) getNodeStack().peek()).add(fontFaceRule);
184-
// }
185-
//
186-
// // Create the style declaration
187-
// CSSStyleDeclarationImpl decl = new CSSStyleDeclarationImpl(fontFaceRule);
188-
// fontFaceRule.setStyle(decl);
189-
// getNodeStack().push(fontFaceRule);
190-
// getNodeStack().push(decl);
191158
}
192159

193160
@Override
194161
public void endFontFace() throws CSSException {
195162
ignore = false;
196-
// // Pop both the style declaration and the font face rule nodes
197-
// getNodeStack().pop();
198-
// nodeRoot = getNodeStack().pop();
199163
}
200164

201165
@Override

bundles/org.eclipse.e4.ui.css.swt.theme/.classpath

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<classpath>
3-
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
3+
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-21"/>
44
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
55
<classpathentry kind="src" path="src"/>
66
<classpathentry kind="output" path="bin"/>

bundles/org.eclipse.e4.ui.css.swt.theme/.settings/org.eclipse.jdt.core.prefs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nul
77
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
88
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
99
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
10-
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
10+
org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
1111
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
12-
org.eclipse.jdt.core.compiler.compliance=17
12+
org.eclipse.jdt.core.compiler.compliance=21
1313
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1414
org.eclipse.jdt.core.compiler.debug.localVariable=generate
1515
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -101,7 +101,7 @@ org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
101101
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
102102
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
103103
org.eclipse.jdt.core.compiler.release=enabled
104-
org.eclipse.jdt.core.compiler.source=17
104+
org.eclipse.jdt.core.compiler.source=21
105105
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
106106
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
107107
org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16

0 commit comments

Comments
 (0)