https://github.com/objectionary/eo-intellij-plugin
Syntax Highlighting Intellij IDEA Plugin for EO Programming Language
https://github.com/objectionary/eo-intellij-plugin
eolang intellij intellij-plugin java oop parser
Last synced: about 1 month ago
JSON representation
Syntax Highlighting Intellij IDEA Plugin for EO Programming Language
- Host: GitHub
- URL: https://github.com/objectionary/eo-intellij-plugin
- Owner: objectionary
- License: mit
- Created: 2022-05-16T15:41:45.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2025-09-30T11:00:57.000Z (about 2 months ago)
- Last Synced: 2025-09-30T13:04:26.782Z (about 2 months ago)
- Topics: eolang, intellij, intellij-plugin, java, oop, parser
- Language: Java
- Homepage:
- Size: 1.1 MB
- Stars: 18
- Watchers: 5
- Forks: 7
- Open Issues: 30
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# IntelliJ IDEA Plugin for EO
[](https://www.elegantobjects.org)
[](http://www.rultor.com/p/objectionary/eo)
[](https://www.jetbrains.com/idea/)
[](https://hitsofcode.com/view/github/objectionary/eo-intellij-plugin)
[](https://github.com/yasamprom/eo-intellij-plugin/actions/workflows/build.yaml)
[](https://codecov.io/gh/objectionary/eo-intellij-plugin)
[](https://github.com/objectionary/eo/blob/master/LICENSE.txt)
This is Intellij plugin for [EO](https://github.com/objectionary/eo).
Installing is possible from [IntelliJ IDEA](https://www.jetbrains.com/idea/)
and other [JetBrains](https://www.jetbrains.com/) family products, such
as [PyCharm](https://www.jetbrains.com/ru-ru/pycharm/),
[CLion](https://www.jetbrains.com/ru-ru/clion/), and so on.
Just type "EO" in plugins search tab and you will find it.
You may also install it from
[its page](https://plugins.jetbrains.com/plugin/19460-eo)
at JetBrains Marketplace.
## How to Contribute
Fork repository, make changes, send us a
[pull request](https://www.yegor256.com/2014/04/15/github-guidelines.html).
We will review your changes and apply them to the `master` branch shortly,
provided they don't violate our quality standards. To avoid frustration,
before sending us your pull request please run full gradle build:
```bash
gradle build
```
For checking code quality we use [Qulice](https://www.qulice.com/index.html)
```bash
gradle qulice
```
You will need [Gradle](https://gradle.org/guides/),
[Maven](https://maven.apache.org/) and Java 14+ installed.
## Structure
Project has two parts: manually written and auto-generated.
In `src/main` you may find source code. Classes listed there are not
auto-generated. They describe EO language and `.eo` extension.
The second part is auto-generated classes. They should be generated
from `.g4` file and moved into
`src/java/org/eolang/jetbrains/parser`. The grammar will be downloaded
automatically
during `build` gradle task. Needed class will be generated at the same time.
Resources (icons and `plugin.xml`) are located in `src/resources`.
We use [Rultor](https://github.com/yegor256/rultor)
for publishing (see `.rultor.yml`).
## How it Works
Plugin is implemented in Java and ANTLR4 grammar.
[ANTLR4 adapter](https://github.com/antlr/antlr4-intellij-adaptor)
is used for generating `EOLexer` and `EOParser` classes.
## Compiling EO sources using plugin
In order to compile eo sources withing the project it must be maven project.
Its `pom` file should contain `eo-maven-plugin` configuration as follows:
```xml
org.eolang
eo-maven-plugin
0.27.0
${project.basedir}/target/eo/foreign.csv
csv
master
true
```
Having this set up compilation can be triggered by
`Build -> EO compile` menu action.