Skip to content

Discontinue the Eclipse plugin: language server and standalone library only (Gradle only) - #391

Merged
stefan-ka merged 7 commits into
masterfrom
refactor/lsp-only
Oct 22, 2026
Merged

stefan-ka merged 7 commits into
masterfrom
refactor/lsp-only

Conversation

@stefan-ka

Copy link
Copy Markdown
Member

Removes the Eclipse plugin and the Maven/Tycho build. The repository then only contains the CML language (standalone library context-mapper-dsl), the language server for the VS Code extension (context-mapper-lsp) and their tests, built with Gradle only, as in a language-server-only project created by the Xtext wizard. Rationale: ADR 0003 (status "proposed").

Changes

  • Removed: Eclipse UI plugin and its tests, feature, p2 update site, target platform (≈ 10'000 lines)
  • Removed: Maven/Tycho build (all pom.xml, Maven wrapper); the version moved to gradle.properties
  • Xtext generation (MWE2): no Eclipse plugin, plugin tests and Eclipse metadata anymore. The generated runtime, LSP and test code is identical to before (compared file by file).
  • Removed: OSGi/Eclipse metadata (MANIFEST.MF, build.properties, plugin.xml, launch configs, versioned .project/.classpath)
  • Removed: HTMLHoverTextProvider4CML (HTML hover texts, only used by the Eclipse editor; the LSP uses the Markdown variant)
  • Moved: Freemarker sample templates from the UI plugin to samples/freemarker (they were only reachable via an Eclipse example wizard)
  • Workflows: Eclipse jobs removed; the release trigger no longer uses the maven-release-plugin, but works on gradle.properties (same commit/tag scheme vX.Y.Z, same CI token; release and next version can be given as inputs)
  • README: VS Code only, note that 6.12.0 is the last Eclipse version, development section for Gradle; build badge fixed
  • Bug report template: VS Code / library instead of Eclipse

Features that were only available in Eclipse

  • XMI generator as IDE command (the XMIGenerator is still part of the library)
  • "New CML File" wizard and Freemarker template examples wizard (templates now in samples/freemarker)
  • Eclipse editor features: quick outline, structure compare editor, preference pages for validation severities, "Generators"/"Refactor" quick menus

All other generators, refactorings (ARs) and quick fixes exist in the language server as well. The language server offers completion, validation, hover, go to definition, find references, rename, document/workspace symbols (outline), formatting, semantic highlighting and code actions.

Verification

To do outside this repository

  • Eclipse Marketplace entry: mark as discontinued / point to VS Code
  • Update site repositories (eclipse-update-site, eclipse-update-site-snapshots): keep for 6.12.0, archive
  • Website (contextmapper.org): many docs describe the Eclipse plugin; the GitHub wiki (IDE setup, development) is outdated
  • GH_CI_TOKEN is still needed for the release trigger; GH_CI_USERNAME is no longer used

The templates were only reachable via an Eclipse example wizard. They now live in samples/freemarker at the repository root.
Context Mapper is only provided as language server (VS Code extension) and standalone library from now on. Removed modules: UI, UI tests, feature, p2 update site and target platform.
Gradle is the only build now. The version moved from the parent pom.xml to gradle.properties. The root .project was the m2e (Maven) project of the parent pom. .java-version: 17 (minimum since Xtext 2.42).
- MWE2: no Eclipse plugin, Eclipse plugin tests and Eclipse metadata
  anymore, Eclipse UI fragments removed. The generated runtime, LSP and
  test code is identical to before.
- Remove OSGi/Eclipse plugin metadata (MANIFEST.MF, build.properties,
  plugin.xml) and the Eclipse launch configurations
- Remove the versioned .project/.classpath files; they are generated by
  Gradle (Buildship) when importing the project into Eclipse, and the
  Gradle eclipse plugin no longer has to be disabled for them
- Remove the Eclipse plugin jobs (build, p2 snapshot and release update
  sites) from all workflows
- Release trigger without the maven-release-plugin: sets the release
  version in gradle.properties, builds, commits and tags vX.Y.Z, sets the
  next development version and pushes both (same commit/tag scheme and
  CI token as before). Release and next version can be given as inputs.
- Current versions of the GitHub actions
- Bug report template: ask for VS Code / standalone library instead of
  Eclipse
- Installation via VS Code Marketplace / Open VSX; note that 6.12.0 is
  the last version of the Eclipse plugin
- Development: Gradle build only, IDE import as Gradle project, release
  workflow
- Fix the build badge (the referenced workflow name did not exist)
- ADR 0003: discontinue the Eclipse plugin (status: proposed)
Only the Eclipse editor used HTMLHoverTextProvider4CML; the language server uses the Markdown variant with the same keywords.
@codecov

codecov Bot commented Oct 21, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.8%. Comparing base (17d16de) to head (1d5176e).

Additional details and impacted files
@@           Coverage Diff            @@
##             master    #391   +/-   ##
========================================
  Coverage      91.8%   91.8%           
- Complexity     2230    2231    +1     
========================================
  Files           211     211           
  Lines          5942    5942           
  Branches        807     807           
========================================
+ Hits           5458    5459    +1     
  Misses          230     230           
+ Partials        254     253    -1     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@stefan-ka
stefan-ka marked this pull request as ready for review October 22, 2026 14:19
@stefan-ka
stefan-ka merged commit df69be1 into master Oct 22, 2026
3 checks passed
@stefan-ka
stefan-ka deleted the refactor/lsp-only branch October 22, 2026 14:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant