--- layout: default title: Language Engineering Made Easy! ---
Easy To LearnXtext is designed to onboard you smoothly. Simple languages are easily done within minutes. Yet Xtext is flexible enough to build fully-featured, statically-typed programming languages.
High QualityThe core framework has been in development for eight years and is used throughout the world in many reasearch and industry projects and even commercial products.
Multi PlatformWhether you are targeting developers or domain experts, you will be able to provide a dedicated smart editor. Eclipse, IntelliJ IDEA and various browser editors are supported. Have a look at our platform comparison chart.
PerformanceWe know that tools need to be fast in order to be helpful. That is why we spend considerable effort on optimization in every release. You can also fine-tune your language if needed, thanks to the configurability of Xtext.
Easy JVM languagesYou can build languages for any target platform with Xtext. If you target the JVM you can reuse Xbase, a statically typed expression language. Linking against Java types, code generation and debugging work out of the box.
Continuous IntegrationXtext supports both Gradle and Maven to build your language and use it in downstream projects. For Gradle builds, you even get incremental compilation of your language files.
Build the Language You Want!Xtext can build full-featured text editors for both general-purpose and domain-specific languages. In the background it uses the LL(*) parser generator of ANTLR, allowing to cover a wide range of syntaxes. Xtext editors have already been implemented for JavaScript, VHDL, Xtend, and many other languages.
Compile to Whatever You Want!You define the target format to which your language is compiled. No matter if it's Java, C, XML, comma-separated values, or even a binary format, Xtext does not limit your choice. And in combination with Xtend writing a compiler becomes easier than ever before.
Highly CustomizableThe default behavior of Xtext is optimized to cover a wide range of languages and use cases. However, every language has characteristics that must be reflected in the IDE. Therefore Xtext allows to insert custom behavior for every single feature by replacing the default implementation. This is done through dependency injection based on Google Guice.
Single SourcingThe grammar definition language of Xtext is not just for the parser. Many IDE features provided by Xtext adapt to your language automatically, so whenever you change your grammar definition, the behavior of the text editor is updated without any further code changes. This includes complex features such as handling of cross-references, code completion, navigation, syntax coloring, validation, and more.
Incremental CompilerXtext is built to scale, so no matter if you have a few source files written in your language or hundreds of them, the IDE remains responsive and reacts smoothly to any text change. This is realized through an incremental compiler that maintains an index of the available source files for fast look-up of language elements.
Compatible with Graphical EditorsYou can combine the text-based formats created with Xtext with many graphical editing frameworks, e.g. Sirius or Graphiti. Xtext offers this flexibility by supporting EMF as common data layer. An Xtext language can be used as storage format for another primary editor, and you can even embed text editors inside a graphical editor.
![]() |
![]() |
![]() |
|
|---|---|---|---|
| Syntax Coloring | |||
| Semantic Coloring | |||
| Error Checking | |||
| Auto-Completion | |||
| Formatting | |||
| Hover Information | |||
| Mark Occurences | |||
| Go To Declaration | |||
| Rename Refactoring | |||
| Debugging | |||
| Toggle Comments | |||
| Outline / Structure View | |||
| Quick Fix Proposals | |||
| Find References | |||
| Call Hierarchy | |||
| Type Hierarchy | |||
| Folding |