package ocamlformat-mlx-lib

  1. Overview
  2. Docs
OCaml .mlx Code Formatter

Install

Dune Dependency

Authors

Maintainers

Sources

ocamlformat-mlx-0.27.0.tbz
sha256=6a40faa182faee55f32bc92387b7e7f97818e160e0f4ef0e0032c0b8b70b86d1
sha512=7df487ebdcddff3529886e034fa9d5476c765c60926b11b8d86fb0e42bea3ee41f693c898e7f95bfc19ca9fa0116825c040a3e027c1e3b7505ebe6c6508540ec

doc/src/ocamlformat-mlx-lib.odoc_parser/loc.ml.html

Source file loc.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
type point = { line : int; column : int }
type span = { file : string; start : point; end_ : point }
type +'a with_location = { location : span; value : 'a }

let at location value = { location; value }
let location { location; _ } = location
let value { value; _ } = value
let map f annotated = { annotated with value = f annotated.value }
let same annotated value = { annotated with value }

let span spans =
  match spans with
  | [] ->
      {
        file = "_none_";
        start = { line = 1; column = 0 };
        end_ = { line = 1; column = 0 };
      }
  | first :: spans ->
      let last = List.fold_left (fun _ span -> span) first spans in
      { file = first.file; start = first.start; end_ = last.end_ }

let nudge_start offset span =
  { span with start = { span.start with column = span.start.column + offset } }

let nudge_end offset span =
  { span with end_ = { span.end_ with column = span.end_.column - offset } }

let spans_multiple_lines = function
  | {
      location =
        { start = { line = start_line; _ }; end_ = { line = end_line; _ }; _ };
      _;
    } ->
      end_line > start_line
OCaml

Innovation. Community. Security.