Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 3 additions & 9 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ This is the **GitHub Copilot for Eclipse** plugin - an Eclipse IDE extension tha
- **Multi-Platform Support**: Windows, macOS (x64/aarch64), and Linux (x64/aarch64)

### Tech Stack
- **Java**: Primary language (Java 17+, with Eclipse 4.31+ requiring Java 21+)
- **Java**: Primary language (Java 21+, with Eclipse 4.38+ requiring Java 21+)
- **Eclipse RCP/OSGi**: Plugin architecture using Eclipse platform APIs
- **Maven/Tycho**: Build system for Eclipse plugin development
- **LSP4E**: Language Server Protocol integration for Eclipse
Expand Down Expand Up @@ -46,7 +46,7 @@ You MUST verify compilation and code quality before declaring work complete!
- Root POM coordinates multi-module build with Tycho
- Each bundle/feature/test has its own POM inheriting from root
- Checkstyle validation runs during `verify` phase
- Target platform defined in `base.target`, `target-terminal.target`, `target-tm-terminal.target`
- Target platform defined in `target-platforms/2025-12.target`

### Code Change Review Trigger

Expand Down Expand Up @@ -117,12 +117,6 @@ The project follows Eclipse plugin conventions with multiple OSGi bundles:
- **Service**: `IRunInTerminalTool` implementation
- **Dependencies**: `org.eclipse.terminal.*` packages

**`com.microsoft.copilot.eclipse.ui.terminal.tm`** - TM Terminal integration (legacy)
- **Package**: `com.microsoft.copilot.eclipse.ui.terminal.tm`
- **Purpose**: Implementation for TM Terminal (Eclipse 4.36 and lower)
- **Service**: `IRunInTerminalTool` implementation
- **Dependencies**: `org.eclipse.tm.terminal.*` packages

#### Platform-Specific Agent Bundles

These bundles contain the Node.js-based Copilot language server agent for each platform:
Expand Down Expand Up @@ -569,7 +563,7 @@ distinguish repeated controls with stable context or an ordinal

**When** writing tests → use JUnit 5 for core logic; integration tests for Eclipse integration

**When** adding dependencies → only add necessary bundles; check `base.target` for Eclipse 2024-03 version constraints
**When** adding dependencies → only add necessary bundles; check `target-platforms/2025-12.target` for Eclipse 2025-12 version constraints

**When** targeting Eclipse versions → support multiple versions when possible

Expand Down
2 changes: 1 addition & 1 deletion .github/skills/ui-action/REFERENCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ with `useUIHarness=true` and `useUIThread=false`. It loads the JSON array from
artifacts, and fails the Maven build if any failed step has `failFast` enabled.

Before the bot starts, the runner pre-populates configuration-scope preferences
so Quick Start, What's New, Welcome, and "Terminal Support Unavailable" dialogs
so Quick Start, What's New, and Welcome dialogs
do not block normal probes.

`screenshot` and failure screenshots capture the active workbench shell with
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,10 @@ jobs:
working-directory: com.microsoft.copilot.eclipse.core/copilot-agent
run: npm i -f

- name: Set up JDK 17
- name: Set up JDK 21
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
with:
java-version: '17'
java-version: '21'
distribution: 'temurin'
cache: maven

Expand Down
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,6 @@ replay_pid*
# whatisnew html file in runtime
**/whatisnew.html

# Terminal bundles
**/terminal-bundles/*.jar

# Fragment bundle copilot-agent directories
com.microsoft.copilot.eclipse.core.agent.linux.x64/copilot-agent/
com.microsoft.copilot.eclipse.core.agent.linux.aarch64/copilot-agent/
Expand Down
12 changes: 5 additions & 7 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ When you submit a pull request, a CLA bot will automatically determine whether y

### Prerequisites

- **Java 17** or later (CI uses Temurin 17; use a newer JDK if required by your Eclipse IDE)
- **Java 21** or later (CI uses Temurin 21; use a newer JDK if required by your Eclipse IDE)
- **Maven 3.8+** (or use the provided Maven wrapper `./mvnw`)
- **Node.js 22.13** or later, with npm
- **Eclipse IDE for Eclipse Committers 2024-03** or later (for development)
- **Eclipse IDE for Eclipse Committers 2025-12** or later (for development)
- Recommended: **Eclipse Checkstyle plugin** for code style compliance
(e.g. install from update site: https://checkstyle.org/eclipse-cs-update-site/)

Expand Down Expand Up @@ -60,9 +60,8 @@ The installable P2 repository is generated in `com.microsoft.copilot.eclipse.rep
activate the check box *Search for nested projects*, and finish the wizard.
* Do also import the agent bundle for your OS (e.g., `com.microsoft.copilot.eclipse.core.agent.win32`)
after building the project with npm and maven or import all OS-specific agent bundles.
2. Activate one of the target platforms, i.e. open one of the target definition files and select `Set As Active Target Platform`.
* target-terminal.target (Eclipse 4.37+)
* target-tm-terminal.target (Eclipse 4.36 and earlier)
2. Activate the target platform, i.e. open the target definition file `target-platforms/2025-12.target`
(Eclipse 2025-12 / 4.38, providing the modern `org.eclipse.terminal.*` bundles) and select `Set As Active Target Platform`.
3. For using the Checkstyle configuration (assuming you have installed the Eclipse Checkstyle plugin, see prerequisites),
add a new named Checkstyle configuration.
* Select *Window > Preferences > Checkstyle* and press the *New...* button.
Expand Down Expand Up @@ -112,8 +111,7 @@ The project is a multi-module Maven/Tycho build consisting of OSGi bundles:
| `com.microsoft.copilot.eclipse.ui` | User interface: chat view, completion UI, agent tools |
| `com.microsoft.copilot.eclipse.ui.jobs` | Copilot Jobs view integration |
| `com.microsoft.copilot.eclipse.terminal.api` | Terminal tool API definitions |
| `com.microsoft.copilot.eclipse.ui.terminal` | Terminal integration (Eclipse 4.37+) |
| `com.microsoft.copilot.eclipse.ui.terminal.tm` | TM Terminal integration (Eclipse 4.36 and earlier) |
| `com.microsoft.copilot.eclipse.ui.terminal` | Terminal integration (runs on Eclipse >= 2025-09 / 4.37) |
| `com.microsoft.copilot.eclipse.branding` | Product branding and about dialog |
| `com.microsoft.copilot.eclipse.core.agent.*` | Platform-specific Copilot language server agent bundles |
| `com.microsoft.copilot.eclipse.feature` | Eclipse feature definition |
Expand Down
77 changes: 0 additions & 77 deletions base.target

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ Automatic-Module-Name: com.microsoft.copilot.eclipse.core.agent.linux.aarch64
Bundle-Version: 0.21.0.qualifier
Bundle-Vendor: GitHub Copilot
Fragment-Host: com.microsoft.copilot.eclipse.core
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-RequiredExecutionEnvironment: JavaSE-21
Eclipse-PlatformFilter: (&(osgi.os=linux)(osgi.arch=aarch64))
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ Automatic-Module-Name: com.microsoft.copilot.eclipse.core.agent.linux.x64
Bundle-Version: 0.21.0.qualifier
Bundle-Vendor: GitHub Copilot
Fragment-Host: com.microsoft.copilot.eclipse.core
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-RequiredExecutionEnvironment: JavaSE-21
Eclipse-PlatformFilter: (&(osgi.os=linux)(osgi.arch=x86_64))
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ Automatic-Module-Name: com.microsoft.copilot.eclipse.core.agent.macosx.aarch64
Bundle-Version: 0.21.0.qualifier
Bundle-Vendor: GitHub Copilot
Fragment-Host: com.microsoft.copilot.eclipse.core
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-RequiredExecutionEnvironment: JavaSE-21
Eclipse-PlatformFilter: (&(osgi.os=macosx) (osgi.arch=aarch64))
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ Automatic-Module-Name: com.microsoft.copilot.eclipse.core.agent.macosx.x64
Bundle-Version: 0.21.0.qualifier
Bundle-Vendor: GitHub Copilot
Fragment-Host: com.microsoft.copilot.eclipse.core
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-RequiredExecutionEnvironment: JavaSE-21
Eclipse-PlatformFilter: (&(osgi.os=macosx)(osgi.arch=x86_64))
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ Automatic-Module-Name: com.microsoft.copilot.eclipse.core.agent.win32
Bundle-Version: 0.21.0.qualifier
Bundle-Vendor: GitHub Copilot
Fragment-Host: com.microsoft.copilot.eclipse.core
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-RequiredExecutionEnvironment: JavaSE-21
Eclipse-PlatformFilter: (osgi.os=win32)
26 changes: 15 additions & 11 deletions com.microsoft.copilot.eclipse.core.test/.classpath
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src">
<attributes>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-21">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src">
<attributes>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
org.eclipse.jdt.core.compiler.compliance=17
org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
org.eclipse.jdt.core.compiler.compliance=21
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=17
org.eclipse.jdt.core.compiler.source=21
org.eclipse.jdt.core.formatter.align_arrows_in_switch_on_columns=false
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Bundle-Name: com.microsoft.copilot.eclipse.core.test
Bundle-SymbolicName: com.microsoft.copilot.eclipse.core.test;singleton:=true
Bundle-Version: 0.21.0.qualifier
Bundle-Vendor: GitHub Copilot
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-RequiredExecutionEnvironment: JavaSE-21
Fragment-Host: com.microsoft.copilot.eclipse.core
Automatic-Module-Name: com.microsoft.copilot.eclipse.core.test
Import-Package: org.objenesis;version="[3.4.0,4.0.0)",
Expand Down
4 changes: 2 additions & 2 deletions com.microsoft.copilot.eclipse.core.test/build.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
source.. = src
output.. = target/classes
source.. = src/
output.. = target/classes/
bin.includes = META-INF/,\
.

18 changes: 11 additions & 7 deletions com.microsoft.copilot.eclipse.core/.classpath
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-21">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
org.eclipse.jdt.core.compiler.compliance=17
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=21
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=17
org.eclipse.jdt.core.compiler.source=21
org.eclipse.jdt.core.formatter.align_arrows_in_switch_on_columns=false
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
Expand Down
4 changes: 2 additions & 2 deletions com.microsoft.copilot.eclipse.core/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ Export-Package: com.microsoft.copilot.eclipse.core,
com.microsoft.copilot.eclipse.core.lsp.protocol.quota,
com.microsoft.copilot.eclipse.core.lsp.protocol.tools,
com.microsoft.copilot.eclipse.core.nes;x-friends:="com.microsoft.copilot.eclipse.ui",
com.microsoft.copilot.eclipse.core.persistence;x-friends:="com.microsoft.copilot.eclipse.ui,com.microsoft.copilot.eclipse.core.test,com.microsoft.copilot.eclipse.core.utils",
com.microsoft.copilot.eclipse.core.persistence;x-friends:="com.microsoft.copilot.eclipse.ui,com.microsoft.copilot.eclipse.core.test,com.microsoft.copilot.eclipse.core.utils",
com.microsoft.copilot.eclipse.core.utils
Bundle-Activator: com.microsoft.copilot.eclipse.core.CopilotCore
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-RequiredExecutionEnvironment: JavaSE-21
Automatic-Module-Name: com.microsoft.copilot.eclipse.core
Bundle-ActivationPolicy: lazy
Import-Package: org.eclipse.ui,
Expand Down
4 changes: 2 additions & 2 deletions com.microsoft.copilot.eclipse.core/build.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
source.. = src
output.. = target/classes
source.. = src/
output.. = target/classes/
bin.includes = META-INF/,\
.,\
plugin.xml,\
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ private Constants() {
public static final String AUTO_SHOW_WHAT_IS_NEW = "autoShowWhatsNew";
public static final String AUTO_BREAKPOINT_RESPONSE = "autoBreakpointResponse";
public static final String GITHUB_JOBS_VIEW_ID = "com.microsoft.copilot.eclipse.ui.jobs.JobsView";
public static final String SUPPRESS_TERMINAL_DEPENDENCY_DIALOG = "suppressTerminalDependencyDialog";

// Auto-Approve settings
public static final String AUTO_APPROVE_TERMINAL_RULES = "autoApproveTerminalRules";
Expand Down
4 changes: 4 additions & 0 deletions com.microsoft.copilot.eclipse.feature/feature.xml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@ For the purpose of improving GitHub Copilot, Microsoft and GitHub may share with
id="com.microsoft.copilot.eclipse.terminal.api"
version="0.0.0"/>

<plugin
id="com.microsoft.copilot.eclipse.ui.terminal"
version="0.0.0"/>

<plugin id="com.microsoft.copilot.eclipse.core.agent.linux.x64"
version="0.0.0"
os="linux" arch="x86_64" fragment="true"/>
Expand Down
Loading