Skip to content

eclipse-tm4e/tm4e

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Eclipse TM4E - TextMate grammars and language configuration for the Eclipse IDE

GitHub Actions Jenkins tests License

Table of contents

About TM4E

TM4E provides a Java implementation of the TextMate grammar engine, based on the microsoft/vscode-textmate project. It can be embedded in any Java application, along with Eclipse IDE integration for syntax highlighting and VS Code-style Language Configuration (brackets, auto-closing, on-enter behavior, and more).

Example: TypeScript editor using TM4E-based highlighting (from Eclipse Wild Web Developer)

TypeScript Editor Screenshot

TM4E is an official Eclipse.org project, and follows the usual Eclipse.org processes and IP requirements.

Key features

  • TextMate-based syntax highlighting for Eclipse editors, including the Generic Editor and TM4E-powered custom editors.
  • Language-configuration based editor features, such as auto-closing and matching brackets, on-enter indentation and comment continuation, toggle line and block comments, and folding when supported.
  • Themable colorization through TextMate themes, with built-in Light/Dark themes and additional themes contributed by plugins.
  • A TM4E secondary partitioner that understands embedded languages and exposes normalized grammar scopes that other tooling can consume.

πŸ“₯ Installation

1) In Eclipse IDE or RCP applications

You can install the latest stable TM4E release from the update site https://download.eclipse.org/tm4e/releases/latest/. TM4E is usually installed together with its consumers, so end users should normally not need to install it directly.

The latest snapshot build can be installed from the update site https://download.eclipse.org/tm4e/snapshots/.

Eclipse IDE and Java compatibility

TM4E version Min. Eclipse version Min. Java version
latest 2024-06 (4.32) 21
0.16.0+ 2024-06 (4.32) 21
0.9.0+ 2023-09 (4.29) 17
0.8.1+ 2023-06 (4.28) 17
0.8+ 2023-03 (4.27) 17
0.6.3+ 2022-12 (4.26) 17
0.6.2+ 2022-09 (4.25) 17
0.6.0+ 2022-03 (4.23) 17

2) As a Java API with Maven

Snapshot binaries of org.eclipse.tm4e.core are available at https://repo.eclipse.org/content/repositories/tm4e-snapshots/org/eclipse/org.eclipse.tm4e.core/. You need to add the following repository configuration to your Maven settings.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<settings>
  <profiles>
    <profile>
      <repositories>
        <repository>
          <id>tm4e-snapshots</id>
          <name>tm4e-snapshots</name>
          <url>https://repo.eclipse.org/content/repositories/tm4e-snapshots/</url>
          <releases><enabled>false</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
      </repositories>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>tm4e-snapshots</activeProfile>
  </activeProfiles>
</settings>

Then reference the dependency in your pom.xml as follows:

<dependencies>
  <dependency>
    <groupId>org.eclipse</groupId>
    <artifactId>org.eclipse.tm4e.core</artifactId>
    <version>[VERSION]-SNAPSHOT</version>
  </dependency>
</dependencies>

πŸš€ Getting started as an end user

If you are using an Eclipse IDE or other tool that ships TM4E-powered editors, you usually do not install TM4E directly.

  • For day-to-day usage, configuration, and troubleshooting of TM4E-powered editors, see the User Guide.
  • For usage questions and general help, use GitHub discussions.
  • To report problems with TM4E-powered editors, file issues in GitHub issues and include details about your IDE, TM4E version, and steps to reproduce.

πŸ™‹ Who is using TM4E?

Here are some projects that use TM4E:

🧩 Architecture and modules

TM4E is split into three main bundles plus an optional language pack feature:

πŸ”Œ Integrating TM4E

If you are an Eclipse plug-in developer or Java tool author and want to integrate TM4E in your own tools:

  • Start with the Adopter Guide for how to depend on TM4E, contribute grammars, themes, and language configurations, and wire TM4E into editors.
  • For integration questions, best practices, and design discussions, use GitHub discussions.
  • To report bugs or request new APIs or integration features, file issues in GitHub issues.

🀝 Contributing

If you want to work on TM4E itself:

  • Source code lives in this github.com/eclipse-tm4e/tm4e repository.
    Clone to Eclipse IDE
  • Quick Start: to build and test locally from the command line, run ./mvnw clean verify (Linux/macOS) or mvnw clean verify (Windows).
  • See the Contributor Guide for repository layout, development environment setup, internal architecture (registry, Generic Editor wiring, async tokenization, TM partitioner), diagnostics, semantic versioning, and the detailed release process.
  • See CONTRIBUTING.md for prerequisites, legal terms, and the contribution workflow.
  • For design discussions and contribution-related questions, use GitHub discussions.
  • Contributors are encouraged to subscribe to the tm4e-dev mailing list.
  • As with other Eclipse.org projects, active contributors who consistently uphold quality standards and good judgment may be nominated as committers.

🧾 License

TM4E is a community-driven open-source project licensed under the Eclipse Public License 2.0.