PeaCoq is a pretty Coq, isn't it?
See the code
PeaCoq
$ git clone https://github.com/Ptival/PeaCoq.git
$ cd PeaCoq
For all of you 1337 hax0rz, shell.nix should pull all the necessary
dependencies.
$ nix-shell
# brace yourself, this might take a while the first time!
Using your package manager of choice, pull the following dependencies:
| Dependency | Version | Bound | Comment |
|---|---|---|---|
| cabal-install | 1.22 | ~ | Use the most recent available |
| Camlp5 | 6.14 | ? | Not sure, just get the most recent available |
| Coq | 8.5 | + | Will definitely not work on < 8.5 |
| GHC | 7.10.2 | ~+ | I believe I use some of the recent features |
| NodeJS (npm) | 3.8.6 | ? | Any version might work |
| OCaml | 4.02.3 | ~+ | Might work on anything >= 4, if Coq builds |
Plus, the following cabal dependencies must be pulled manually:
$ cabal install alex happy
Optionally (but recommended), you can run cabal update, then:
$ ./setup.sh
setup.sh will perform a lot of operations:
Check that the required software is present and versions
Clean up existing installations of peacoqtop and peacoq-server
Build and install peacoqtop, a wrapper around coqtop
Build and install peacoq-server, a small server to communicate with the
front-end
make the OCaml plugin that enriches Coq's protocol for PeaCoq
npm install some JavaScript modules needed by the front-end
typings install some TypeScript definitions needed to type-check the front-end
tsc -p . transpiles the front-end from TypeScript to JavaScript
Finally a configuration file will be created in your home directory
So it will take a while the first time, and steps 3, 4, 6, and 7 will require an Internet connection.
./peacoq -p <PORT>
Then navigate to http://localhost:<PORT>/index.html to start using PeaCoq!
<C> will refer to a Ctrl or Command key.
<M> will refer to a Alt or Option key.
Note: certain shortcuts offer a poor user experience on Windows and possibly MacOS.
They will eventually be re-bind-able. Feel free to alter them in
web/ts/editor/keybindings.ts.
| Shortcut | Action |
|---|---|
<C> <M> L | Load a file |
<C> <M> S | Save a file |
<C> <M> Up | Step backward |
<C> <M> Right | Step to caret |
<C> <M> Down | Step forward |
<C> <M> + | Increase font |
<C> <M> - | Decrease font |
Coq
47.2%
TypeScript
44.8%
JavaScript
2.3%
HTML
2.0%
Python
1.9%
Shell
1.0%
PeaCoq is a pretty Coq, isn't it?
See the code
PeaCoq
$ git clone https://github.com/Ptival/PeaCoq.git
$ cd PeaCoq
For all of you 1337 hax0rz, shell.nix should pull all the necessary
dependencies.
$ nix-shell
# brace yourself, this might take a while the first time!
Using your package manager of choice, pull the following dependencies:
| Dependency | Version | Bound | Comment |
|---|---|---|---|
| cabal-install | 1.22 | ~ | Use the most recent available |
| Camlp5 | 6.14 | ? | Not sure, just get the most recent available |
| Coq | 8.5 | + | Will definitely not work on < 8.5 |
| GHC | 7.10.2 | ~+ | I believe I use some of the recent features |
| NodeJS (npm) | 3.8.6 | ? | Any version might work |
| OCaml | 4.02.3 | ~+ | Might work on anything >= 4, if Coq builds |
Plus, the following cabal dependencies must be pulled manually:
$ cabal install alex happy
Optionally (but recommended), you can run cabal update, then:
$ ./setup.sh
setup.sh will perform a lot of operations:
Check that the required software is present and versions
Clean up existing installations of peacoqtop and peacoq-server
Build and install peacoqtop, a wrapper around coqtop
Build and install peacoq-server, a small server to communicate with the
front-end
make the OCaml plugin that enriches Coq's protocol for PeaCoq
npm install some JavaScript modules needed by the front-end
typings install some TypeScript definitions needed to type-check the front-end
tsc -p . transpiles the front-end from TypeScript to JavaScript
Finally a configuration file will be created in your home directory
So it will take a while the first time, and steps 3, 4, 6, and 7 will require an Internet connection.
./peacoq -p <PORT>
Then navigate to http://localhost:<PORT>/index.html to start using PeaCoq!
<C> will refer to a Ctrl or Command key.
<M> will refer to a Alt or Option key.
Note: certain shortcuts offer a poor user experience on Windows and possibly MacOS.
They will eventually be re-bind-able. Feel free to alter them in
web/ts/editor/keybindings.ts.
| Shortcut | Action |
|---|---|
<C> <M> L | Load a file |
<C> <M> S | Save a file |
<C> <M> Up | Step backward |
<C> <M> Right | Step to caret |
<C> <M> Down | Step forward |
<C> <M> + | Increase font |
<C> <M> - | Decrease font |
Coq
47.2%
TypeScript
44.8%
JavaScript
2.3%
HTML
2.0%
Python
1.9%
Shell
1.0%