This package will eventually provide a toy compiler for experimenting with resumable parsing.
The application is designed as a plugin for Visual Studio Code.
This also serves as an experiment in employing shake
inside of a custom cabal Setup.hs
Table of Contents
To build:
-
Make sure you have
npm
andVisual Studio Code
installed and thatcode
invokes the latter from the command line. -
Run
cabal install
orstack install
to build and register the extension with Visual Studio Code.
If code
is not in your path, or you want a manual install for some reason, you can use cabal build
, open Visual Studio
Code, type โ-Shift-P
, select > Extensions: Install Extension from VSIX
from the resulting selection box, and finally pick out dist/build/coda-<version>.vsix
in the finder dialogue to install the package.
The instructions in Running and Debugging Your Extension can be readily tweaked to work here if you need more interactive debugging support when working on the compiler.
Once you have an installed coda
executable, bash command line autocompletion is available with:
$ source <(coda --bash-completion-script `which coda`)
You can add this to your .profile
or .bashrc
Currently, the build process is being tested on GHC 8.0, but I'm not actively doing anything to shut off older GHCs or newer ones.
Patches that help increase portability are welcome.
Once there is an actual language here documentation will be forthcoming on it.
In the meantime, API documentation is available from https://ekmett.github.io/coda/
Directory | Usage |
---|---|
bin | Executable scripts used by CI |
etc | Configuration used by CI |
ext | Template files used to build the extension |
ext/test | The vscoe test suite for the extension |
main | Where to find Main.hs for executable haskell files |
src | coda library source code |
test/data | data files used by the test suite |
test/shim | shims to work around doctest limitations |
test/main | Where to find Main.hs for test suites |
test/src | tasty tests |
var | A cache that may (infrequently) be changed during the build. Can be safely deleted |
Contributions and bug reports are welcome!
Please feel free to contact me through github or on the ##coda or #haskell IRC channels on irc.freenode.net.
-Edward Kmett