An open API service indexing awesome lists of open source software.

https://github.com/luishgh/competitive-companion.el

Emacs integration with https://github.com/jmerle/competitive-companion
https://github.com/luishgh/competitive-companion.el

atcoder codeforces competitive-programming emacs emacs-package icpc

Last synced: 27 days ago
JSON representation

Emacs integration with https://github.com/jmerle/competitive-companion

Awesome Lists containing this project

README

          

#+TITLE: Competitive Companion for Emacs

Simple Emacs integration with [[https://github.com/jmerle/competitive-companion][competitive companion]].

[[https://github.com/luishgh/Dotfiles/blob/master/Emacs.org#competitive-companion][My personal configuration]], you may take it as a slightly undocumented inspiration for yours.

** Features

- Automatically download all task's sample test cases.
- Generate task's implementation file with user's template.
- Run program against all test cases, see wrong answers in pop-up (help) buffer.
- Add/remove/edit test cases easily.
- Support to multiple programming languages.
- Detect basic verdicts (AC, WA, RTE)
- Native =evil-mode= support!

** Planned features

These are the features which would be nice to have on the future, not necessarily where I'm working next:

- [ ] Support more verdicts (TLE, MLE).
- [ ] Automatic submission (offload to another software most probably)

** Non planned features

- Compilation :: Emacs has a bunch of solutions for compilation already (~M-x compile~ for example)
- Complex templating :: Use specific templating solutions for that.
- Input/Output from files or command line arguments :: This rarely appears in online contests and seems too hard to be justifiable 🫤. Just test the program reading from stdin and outputting to stdout and change the IO wiring before submitting.
- Mouse friendly interface :: Why reach for the mouse during a contest? 🤨

** Installation

This package is currently only available through the GitHub repository. Installation examples in some common settings are provided below.

*** Doom Emacs

Add this to =$DOOMDIR/packages.el=:

#+begin_src emacs-lisp
(package! competitive-companion
:recipe (:host github :repo "luishgh/competitive-companion.el"))
#+end_src

*** use-package + straight.el

#+begin_src emacs-lisp
(use-package competitive-companion
:straight (competitive-companion :type git
:host github
:repo "luishgh/competitive-companion.el"))
#+end_src

*** package-vc

#+begin_src emacs-lisp
(package-vc-install
'(competitive-companion :url "https://github.com/luishgh/competitive-companion.el"
:doc "doc/competitive-companion.texi"))
#+end_src

** Documentation

This package includes an Info manual! After installation, please check it out with:

#+begin_example
M-x info-display-manual RET competitive-companion RET
#+end_example