An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          

# IntelliJ IDEA Plugin for EO

[![EO principles respected here](https://www.elegantobjects.org/badge.svg)](https://www.elegantobjects.org)
[![DevOps By Rultor.com](http://www.rultor.com/b/objectionary/eo)](http://www.rultor.com/p/objectionary/eo)
[![We recommend IntelliJ IDEA](https://www.elegantobjects.org/intellij-idea.svg)](https://www.jetbrains.com/idea/)

[![Hits-of-Code](https://hitsofcode.com/github/objectionary/eo-intellij-plugin)](https://hitsofcode.com/view/github/objectionary/eo-intellij-plugin)
[![build](https://img.shields.io/github/workflow/status/objectionary/eo-intellij-plugin/build)](https://github.com/yasamprom/eo-intellij-plugin/actions/workflows/build.yaml)
[![codecov](https://codecov.io/gh/objectionary/eo-intellij-plugin/branch/master/graph/badge.svg)](https://codecov.io/gh/objectionary/eo-intellij-plugin)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](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.