upenn-cis1xx / camelot

A fully-modular OCaml style linter
https://opam.ocaml.org/packages/camelot/
Apache License 2.0
44 stars 5 forks source link

Camelot Build and Test Status

A modular and fully-configurable OCaml Linter / Style Checker for OCaml compiler version >= 4.10.0 < 4.13.0 (temporarily).

Dependencies (handled by opam)

Note:

This project is dependent on compiler-libs, an inherently unstable library that changes between OCaml installations.

Installation

To install from the latest opam release, run: opam install camelot

Building From Source

Build: dune build bin/camelot.exe

Build + Watch: dune build bin/camelot.exe -w

Writing and running tests

To run tests: dune test

If any changes you make break code, dune test will flag it and highlight the differences. If there are no issues, dune will not print anything.

To write tests, see the dune documentation for expect-tests. If you implement a new rule, you'll have to do the following:

Camelot flags

-d <lintdir> : Specify the directory in which to lint

-show <student | ta | gradescope | json> : Configure reporting output

-f <filename> : Lints the given file

IDE Support

Camelot has syntax highlighting support for Visual Studio Code using the camelot-vscode extension.

Acknowledgements

This project wouldn't have been possible without the following three repos: