S-dom/README.md

43 lines
2.6 KiB
Markdown
Raw Permalink Normal View History

2024-05-04 13:09:22 +02:00
# S-DOM
S-DOM is a plugin for IntelliJ IDEA that allows you to submit your code to the DOMjudge system directly from the IDE.
2024-05-15 20:17:15 +02:00
It isn't a full replacement for the web interface yet, but already matches or surpasses the web UI in most tasks.
2024-05-04 13:09:22 +02:00
2024-05-26 09:16:05 +02:00
You can download the plugin from the [JetBrains Marketplace](https://plugins.jetbrains.com/plugin/24446-s-dom-for-domjudge).
2024-05-15 20:17:15 +02:00
## Features
- 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
2024-05-15 20:17:15 +02:00
2024-05-26 09:16:05 +02:00
<!-- Note to writers: A copy of the feature list exists in plugin.xml, please also add your changes there -->
2024-05-15 20:17:15 +02:00
## 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
2024-05-15 20:17:15 +02:00
- Show scoreboards
- Maybe even download test cases and scaffold sources
2024-05-04 13:09:22 +02:00
2024-05-26 09:16:05 +02:00
## Contributing
If you want to contribute, feel free to fork the [GitLab repository](https://gitlab.com/JFronny/s-dom) 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.
2024-05-26 12:07:50 +02:00
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.
2024-05-26 09:16:05 +02:00
2024-05-04 13:09:22 +02:00
## References
- [DOMjudge](https://www.domjudge.org/documentation)
2024-05-12 16:42:04 +02:00
- [DOMjudge API](https://domjudge.iti.kit.edu/main/api/doc)
2024-05-04 13:09:22 +02:00
- [SimpleCodeTester plugin](https://github.com/Mr-Pine/SimpleCodeTester-IntelliJ-Plugin)
2024-05-15 20:17:15 +02:00
- [Example Route](https://domjudge.iti.kit.edu/main/api/v4/contests/5/problems)
2024-05-26 12:07:50 +02:00
- [All IDEA UI Icons](https://jetbrains.design/intellij/resources/icons_list/)
## Publishing
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](https://git.frohnmeyer-wds.de/Johannes/Scripts)) 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.