to update toc, please read this page.
To build the project, you will need the following requirement
- JDK 1.8
- OPA binary (must be in the path, check version in the readme)
- IntelliJ (community or ultimate version)
It's optional but we recommend you to install the following IntelliJ plugin:
- Grammar-Kit to get highlighting of the grammar file.
- PsiViewer to view the AST of Rust files right in the IDE.
Just clone the project and execute the tests to ensure everything is ok.
# clone the project
$ git clone git@github.com:vgramer/opa-idea-plugin.git
$ cd opa-idea-plugin
# run tests
$ ./gradlew test
> Task :generateRegoLexer
Reading "/tmp/a/opa-idea-plugin/src/main/grammar/RegoLexer.flex"
Warning : Macro "EOL" has been declared but never used.
Constructing NFA : 193 states in NFA
Converting NFA to DFA :
........................................................................................................
106 states before minimization, 96 states in minimized DFA
Writing code to "/tmp/a/opa-idea-plugin/src/main/gen/org/openpolicyagent/ideaplugin/lang/lexer/_RegoLexer.java"
> Task :generateRegoParser
Rego.bnf parser generated to /tmp/a/opa-idea-plugin/src/main/gen
BUILD SUCCESSFUL in 13s
16 actionable tasks: 16 executed
You can use the gradle task runIde
to run an IntelliJ sandbox with
- opa plugin installed
- psi viewer installed
Once the sandbox ide has started, you will have to create or open an existing project to test the plugin.
Sometime you may need to reset your sandbox, you can use the task clean
to do it.
Run the task buildPlugin
, the jar
will be generated in build/libs/opa-idea-plugin-<version>.jar
The lexer
and parser
code which are generated by tools are not committed in git
. They can respectively be generated by the tasks generateRegoLexer
and generateRegoParser
.
These tasks are linked to the KotlinCompile
task so if you try to build, test or run the sandbox ide, the lexer and
parser will be automatically generated.
The code is generated in the gen folder. If you want to reset the generated, just delete the
content of the gen folder and launch tasks generateRegoLexer
and generateRegoParser
.