Contributions are welcome!
When you wish to contribute, please open an issue. Even a question can be a helpful contribution, as it can identify incomplete or missing parts in the documentation.
Other things, such as bug reports, pull requests, etc. are also welcome.
Working on your first Pull Request? You can learn how from this free series How to Contribute to an Open Source Project on GitHub.
The short version:
- Fork the repository
- Make your changes in your fork (using a new branch is advisable)
- Test your changes, and verify any UI changes visually.
A complete starting point is
./gradlew test runPLugin
- Open a PR to merge your changes in the target repo
The folder src/main/gen
contains code generated by the IntelliJ GrammarKit plugin. It is not generated during the build, because the
GrammarKit Gradle plugin does not support mixins or injecting PSI utility methods. Code generation is therefore a manual operation.
When changing the grammar, keep in mind:
- Don't change the lexer directly, but change the
tokens
definition in the grammar instead - When changing tokens, remember to recreate the lexer
- When renaming/deleting BNF clauses, remember to delete the folder
src/main/gen/opwvhk/intellij/avro_idl/psi
- Always regenerate the code after changing the grammar and/or lexer
There are no automated tests as hooking into IntelliJ and the effects of navigating its API are by far the trickiest bit. The code doing stuff with the result is trivial.