package ocamlformat

  1. Overview
  2. Docs
Auto-formatter for OCaml code

Install

dune-project
 Dependency

Authors

Maintainers

Sources

ocamlformat-0.24.1.tbz
sha256=023425e9818f80ea50537b2371a4a766c149a9957d05807e88a004d2d5f441ce
sha512=753b6128be68042895202f99959b360ce954db6f82b19b83b4bb346761a8e9cfdfc2b4b25e2070e60601b555562e78f9ebb02760ff127464e0b66cedbddca304

Description

OCamlFormat is a tool to automatically format OCaml code in a uniform style.

Added to opam-repository:

README

Build Status

OCamlFormat

Hello, new user! Welcome! :wave:

If you are here, you are probably interested in using a formatting tool for your code base, so that you do not have to worry about formatting it by hand, and to speed up code review by focusing on the important parts.

OCamlFormat is probably what you are after!

OCamlFormat works by parsing then outputting again the same OCaml source file in a consistent style.

Read the documentation to learn more about OCamlFormat!

Getting started

Installation

OCamlFormat can be installed with opam:

opam install ocamlformat

Alternatively, see ocamlformat.opam for manual build instructions.

Formatting code!

Setting up your project to use the default profile and the OCamlFormat version you installed (hopefully the last one) in this .ocamlformat file is considered good practice:

profile = default
version = 0.24.1

To manually invoke OCamlformat the general command is:

ocamlformat [OPTION]... [SRC]...

See ocamlformat --help or man ocamlformat for the detail about options.

You can also view it online.

The most common usecase involves using the dune build system, once your project is correctly setup (see Dune's manual) you can reformat your project using:

dune build @fmt

Community

See CONTRIBUTING for how to help out.

License

OCamlFormat is MIT-licensed.

Dependencies (19)

  1. csexp >= "1.4.0"
  2. uutf >= "1.0.1"
  3. uuseg >= "10.0.0"
  4. stdio
  5. re >= "1.7.2"
  6. odoc-parser >= "2.0.0" & < "2.3.0"
  7. ocp-indent
  8. ocaml-version >= "3.3.0" & < "3.6.0"
  9. menhirSdk >= "20201216"
  10. menhirLib >= "20201216"
  11. menhir >= "20201216"
  12. fpath
  13. fix
  14. either
  15. dune-build-info
  16. dune >= "2.8"
  17. cmdliner >= "1.1.0" & < "2.0"
  18. base >= "v0.12.0" & < "v0.17.0"
  19. ocaml >= "4.08" & < "5.2"

Dev Dependencies (5)

  1. odoc with-doc
  2. ocp-indent with-test & < "1.9.0"
  3. ocamlformat-rpc-lib with-test & = version
  4. dune < "3.22" & with-test
  5. alcotest with-test

Used by (91)

  1. ambient-context < "0.2"
  2. ask
  3. ask-integrator
  4. autofonce
  5. autofonce_config
  6. autofonce_core
  7. autofonce_lib
  8. autofonce_m4
  9. autofonce_misc
  10. autofonce_patch
  11. autofonce_share
  12. awsm-codegen
  13. bastet < "2.0.0"
  14. bitpack_serializer
  15. brisk-reconciler
  16. CamelCase
  17. canary >= "0.0.4"
  18. data-encoding >= "1.0.0"
  19. diff
  20. diskuvbox < "0.2.0"
  21. dream-inertia
  22. drom
  23. drom_lib
  24. drom_toml
  25. dump_ocamlformat
  26. dune_deps_extra
  27. ephemeral
  28. ez_cmdliner >= "0.2.0"
  29. ez_config >= "0.2.0"
  30. ez_file >= "0.2.0" & < "0.5.0"
  31. ez_hash < "0.5.3"
  32. ez_opam_file
  33. ez_search
  34. ez_subst
  35. fromager
  36. guardian != "0.1.0"
  37. header-check
  38. highway
  39. js_of_ocaml-webgpu >= "0.2"
  40. json-data-encoding >= "1.0.0" & < "1.1.1"
  41. jsonschema2atd
  42. letters >= "0.2.0" & != "0.3.1"
  43. lunar
  44. melange-fest
  45. melange-fetch >= "0.2.0"
  46. melange-json >= "1.2.0" & < "2.0.0"
  47. melange-radix-icons >= "0.1.0"
  48. melange-str
  49. merge-fmt = "0.3"
  50. mlx
  51. module-graph
  52. nel
  53. noCanren
  54. ocaml-lsp-server < "1.9.0" | = "1.17.0"
  55. ocamlmerlin-mlx >= "0.11"
  56. ocp-search
  57. ocplib_stuff >= "0.3.0"
  58. oktree
  59. opam-bin >= "0.9.5"
  60. opam_bin_lib >= "0.9.5"
  61. opentelemetry >= "0.6" & < "0.12"
  62. owi >= "0.2"
  63. pgn_to_tex
  64. pidgin
  65. polars
  66. polars_async
  67. ppx_deriving_jsonschema < "0.0.7"
  68. prelude >= "0.4"
  69. primavera
  70. psmt2-frontend >= "0.3.0"
  71. query-json
  72. quickjs >= "0.2.0" & < "0.5.0"
  73. rea < "0.2.0"
  74. react-rules-of-hooks-ppx
  75. red-black-tree
  76. scope
  77. sihl < "0.1.0"
  78. slugline
  79. smtml >= "0.10.0" & < "0.24.0"
  80. solidity-alcotest
  81. solidity-common
  82. solidity-parser
  83. solidity-test
  84. solidity-typechecker
  85. spectrum >= "0.7.0"
  86. styled-ppx
  87. synchronizer
  88. virtfs
  89. yamlx = "0.4.0"
  90. yocaml >= "2.0.0"
  91. zanuda < "1.1.0"

Conflicts

None