package ppx_js_style

  1. Overview
  2. Docs
Code style checker for Jane Street Packages

Install

Dune Dependency

Authors

Maintainers

Sources

ppx_js_style-v0.12.0.tar.gz
md5=ecc9f1010c7398e48c7c0d0353d47839

Description

Part of the Jane Street's PPX rewriters collection.

This packages is a no-op ppx rewriter. It is used as a 'lint' tool to enforce some coding conventions across all Jane Street packages.

Published: 01 Mar 2019

README

ppx_js_style - Enforce Jane Street coding styles

ppx_js_style is an identity ppx rewriter that enforces Jane Street coding styles.

Coding rules

The following rules are enforced by ppx_js_style:

  • Enabled by -dated-deprecation: [@@deprecated] attributes must contain the date of deprecation, using the format "[since MM-YYYY] ..." N.B. this check, on by default at janestreet, but off by default externally, can also be disabled with the flag -no-dated-deprecation

  • Enabled by -annotated-ignores: Ignored expressions must come with a type annotation, such as: ignore (expr : typ) let _ : type = expr Note that aliases need not be annotated: let _ = Foo.bar in

  • Enabled by -check-doc-comments: Comments in mli must either be documentation comments or explicitely "ignored": (** documentation comment *) (*_ ignored comment *) Normal (* comment *) comments are disallowed.

    This flag additionally enables warning 50, which checks the placement of documentation comments.

    Finally, doc comments are checked to be syntactically valid.

  • Enabled by -compat-32: Checks that calling ocamlc on the input would produce bytecode that works on 32 bits architectures (including js_of_ocaml), ie that all constant are representable on 32 bits architectures. Compared to the compiler flag by the same name, it allows to perform this check without building any bytecode.

Dependencies (5)

  1. ppxlib >= "0.5.0" & < "0.9.0"
  2. octavius
  3. dune >= "1.5.1"
  4. base >= "v0.12" & < "v0.13"
  5. ocaml >= "4.04.2"

Dev Dependencies

None

Used by (2)

  1. parsexp_io = "v0.12.0"
  2. ppx_base = "v0.12.0"

Conflicts

None

OCaml

Innovation. Community. Security.