File: Cmt.mli

package info (click to toggle)
ocamlformat 0.27.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 12,068 kB
  • sloc: ml: 61,288; pascal: 4,739; lisp: 229; sh: 217; makefile: 121
file content (51 lines) | stat: -rw-r--r-- 1,804 bytes parent folder | download
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
(**************************************************************************)
(*                                                                        *)
(*                              OCamlFormat                               *)
(*                                                                        *)
(*            Copyright (c) Facebook, Inc. and its affiliates.            *)
(*                                                                        *)
(*      This source code is licensed under the MIT license found in       *)
(*      the LICENSE file in the root directory of this source tree.       *)
(*                                                                        *)
(**************************************************************************)

open Migrate_ast

type t

val create_comment : string -> Location.t -> t

val create_docstring : string -> Location.t -> t

val is_docstring : t -> bool

val loc : t -> Location.t

val txt : t -> string

include Comparator.S with type t := t

type error =
  { kind: [`Added of t | `Modified of t * t | `Dropped of t]
  ; cmt_kind: [`Comment | `Doc_comment] }

val pp_error : Format.formatter -> error -> unit

type pos = Before | Within | After

type decoded_kind =
  | Verbatim of string  (** Original content. *)
  | Doc of string  (** Original content. *)
  | Normal of string
      (** Original content with indentation trimmed. Trailing spaces are not
          removed. *)
  | Code of string  (** Source code with indentation removed. *)
  | Asterisk_prefixed of string list
      (** Line splitted with asterisks removed. *)

type decoded =
  { prefix: string  (** Just after the opening. *)
  ; suffix: string  (** Just before the closing. *)
  ; kind: decoded_kind }

val decode : parse_comments_as_doc:bool -> t -> decoded