IntelliGrade is an IntelliJ port of the Eclipse Grading Tool. It is used to grade Artemis based exercises.
git clone https://github.com/kit-sdq/intelligrade/
cd intelligrade
./gradlew runIde --refresh-dependencies
for updating, execute
cd intelligrade
git pull
./gradlew runIde --refresh-dependencies
-
Enter dev shell using direnv or manually with
nix develop -
Run the plugin
- Using a local IntellIJ Platform from nixpkgs
run-ide
- Using the IntellIJ Platform dependency from Gradle
run-ide-non-local
- Using a local IntellIJ Platform from nixpkgs
If the Welcome to IntelliJ IDEA screen pops up, simply create a new empty project and open it. This will be the grading workspace. Set the Artemis URL at File > Settings > Tools > IntelliGrade Settings, and press the connect button.
The tool window to the top right with the pen icon is the grading window, and the tool window with the sheet of paper icon to the bottom left is the annotations list.
- Hovering over line markers does not show the corresponding annotation(s). Instead, you can click on or hover over gutter icons to show the annotations. Selecting an annotation from the list brings you to the corresponding entry in the annotations list.
- You can right click an annotation in the annotations list (or double-click the
messagecolumn) to edit its custom message and custom score or delete the annotation. - The old Alt + Enter shortcut for adding annotations is now Alt + A. You can search in the popup as usual, and hold Control to add a custom message.
- All editors are read-only.
- Make sure that you have Java >=21 and a recent version of Gradle installed.
- Run the gradle target
runIdeto get a development version of the IDE:- on Windows:
gradlew.bat runIde --refresh-dependencies - on Linux:
./gradlew runIde --refresh-dependenciesThis will download IntelliJ Community Edition (may take several minutes) and run it with Intelligrade installed.
- on Windows:
This project depends on snapshot versions of artemis4j, and sometimes a cached version is not updated.
Symptoms for this are compilation failures, even though the CI is green.
To fix this, you should try the following:
- Close IntelliJ
- Delete the folders ~/.gradle/.tmp ~/gradle/caches/ and ~/.m2/repository/*
- Then rerun with --refresh-dependencies
Before starting, please make sure that you've understood and internalized Intellij's threading model. Whatever you do, always remember which thread you are on (EDT/pooled) and what you can do on that thread.
Also, please do not touch the JCEF login code unless absolutely necessary. It contains delicate synchronization code, which is needed since most JCEF methods are asynchronous and call you back on arbitrary threads. Also, IntelliJ's JCEF wrapper (JBCEF) is very buggy.
Most layouts use MigLayout, which is included in IJ. Good references are the white paper and the cheat sheet. JB publishes UI guidelines, which are worth a read. For icons, they have a very nice search engine.