$ chmod a+x gradlew
$ ./gradlew buildPlugin
It's now recommended to use gradle because it can be used under command line.
But anyway you're gonna edit this project code with IDEA.
First install required plugins in your IntelliJ IDEA:
- Grammar-Kit
- UI Designer (built-in, just make sure you've enabled it)
- Plugin DevKit (built-in, just make sure you've enabled it)
- Kotlin
For debugging purpose, it's recommended to install a plugin called PsiViewer in the plugin sandbox .
Clone this repo:
$ git clone https://github.com/ice1000/julia-intellij.git
Create a plugin project from your cloned source, and use gradle buildPlugin
to do code generation.
To debug, run gradle runIde
in the debugger. Break points works like a charm.
For more information, see the official doc.
- Put all natural language strings into the resource bundle
- Use as much
@NotNull
and@Nullable
as you can in Java codes except local variables
- Break the code style -- use tab indents with spaces aligns (see .editorconfig)
- Open pull requests just to fix code style, or use some syntax sugar (julia-intellij is not SharpLang!)
- Add any kind of generated file into the git repo (including the parser!)
- Violate the open source license
- Use Kotlin except UI, but if you only know Java, never mind, we can help you convert
- Name your files like
julia-xxx.kt
- Put all highly related classes into a single file
- Use English, but we also read Chinese so if you only know Chinese just use it
- Write commit message starts with
[ issue id or refactor type ]
- Write comments, except you're using magics. Tell us if you do
- Write tests, because we'll review your codes carefully
The task genLexer
and runIde
(depends on former) need file encoding with UTF-8, so if you have trouble in
running some gradle tasks, please run gradle with VM options -Dfile.encoding=UTF-8
or run with environment variable JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
- Open
Help | Edit Custom Properties
;- Paste
idea.is.internal=true
(without double quotes) to the file;- Save it;
e.g:
gradle test --tests org.ice1000.julia.lang.JuliaParsingTest.testParseIssue379