IDE-integrated tools for DOMjudge
Go to file
2024-07-09 19:00:47 +02:00
.idea feat: scaffold 2024-05-04 13:09:22 +02:00
.run feat: scaffold 2024-05-04 13:09:22 +02:00
src/main fix: make problem name ordering case insensitive 2024-07-09 19:00:47 +02:00
.gitignore feat: scaffold 2024-05-04 13:09:22 +02:00
build.gradle.kts fix: ship PDFjs with the plugin 2024-05-31 10:08:25 +02:00
DOMjudgelogo.svg chore: add actual icon 2024-05-12 13:36:24 +02:00 feat: scaffold 2024-05-04 13:09:22 +02:00
LICENSE chore: clean up before making repo public 2024-05-12 14:24:58 +02:00 docs: mention lack of "Too late" message 2024-05-31 10:57:38 +02:00
settings.gradle.kts build: generate version and changelogs from commit log 2024-05-26 09:45:41 +02:00


S-DOM is a plugin for IntelliJ IDEA that allows you to submit your code to the DOMjudge system directly from the IDE. It isn't a full replacement for the web interface yet, but already matches or surpasses the web UI in most tasks.

You can download the plugin from the JetBrains Marketplace.


  • Simple, one-click submissions and feedback (no need for File Explorer or reloading!)
  • View problems and problem statements without leaving your IDE
  • Unobtrusive and integrated
  • Detects the language of submitted files

Potential future features

  • Display how much time is left in a contest or whether it's already over
  • Show "Too late" if a submission is not possible anymore
  • Implement reading detailed results
  • Show scoreboards
  • Maybe even download test cases and scaffold sources


If you want to contribute, feel free to fork the GitLab repository and submit a merge request there. I'm happy to accept any help, be it bug fixes, new features, or just code cleanup. Please note that I will merge MRs locally, so don't be surprised if your MR is marked as closed without merging. Also note that S-dom uses Gradle to build but does not use the gradle wrapper, so you should have Gradle installed on your system. Also take a look at the references below for some resources for developing this plugin.



Note: This section is only relevant for the maintainer of this repository and provided mostly for reference.

  • To publish a new version, first create a new tag for that version and push it to the repository.
  • To do so, use the bumpVersion task provided by jf.autoversion (source code) by running gradle bumpVersion -PnextVersionType=release.
  • Then push the tag to the repository using git push --tags.
  • After that, run gradle buildPlugin -Prelease to build the plugin. You can find the output of that task as a zip file in the build/distributions directory.
  • Finally, upload the zip file to the JetBrains Marketplace.