package lsp

  1. Overview
  2. Docs
LSP protocol implementation in OCaml

Install

Dune Dependency

Authors

Maintainers

Sources

jsonrpc-1.4.0.tbz
sha256=fd138e6c4fcff32c6d15eb66cc9391b7e1183717a6d1a47c688c7f6d320a159f
sha512=567a73b3c10bb59c5a4d4e8291d1aeefdfd34438a95313fba8a485638294ca5fb8034334719631243c304d3328c27afa90dfd564fdb1e7390507a06db3a4ad03

doc/src/lsp.stdune/path_intf.ml.html

Source file path_intf.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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
module type S = sig
  type t

  val hash : t -> int

  val to_string : t -> string

  val of_string : string -> t

  val parse_string_exn : loc:Loc0.t -> string -> t

  (** a directory is smaller than its descendants *)
  include Comparator.S with type t := t

  include Comparator.OPS with type t := t

  val to_dyn : t -> Dyn.t

  val extension : t -> string

  (** [set_extension path ~ext] replaces extension of [path] by [ext] *)
  val set_extension : t -> ext:string -> t

  val split_extension : t -> t * string

  val basename : t -> string

  val basename_opt : t -> string option

  val extend_basename : t -> suffix:string -> t

  module Set : sig
    include Set.S with type elt = t

    val to_dyn : t Dyn.Encoder.t

    val of_listing : dir:elt -> filenames:string list -> t
  end

  module Map : Map.S with type key = t

  module Table : Hashtbl.S with type key = t

  val relative : ?error_loc:Loc0.t -> t -> string -> t

  val to_string_maybe_quoted : t -> string

  val is_descendant : t -> of_:t -> bool

  val is_root : t -> bool

  val parent_exn : t -> t

  val parent : t -> t option
end

(** [Unspecified.w] is a type-level placeholder of an unspecified path. (see
    [Local_gen] for how it's used) *)
module Unspecified = struct
  type w
end

(** ['w Local_gen.t] is the type of local paths that live under ['w]. If
    [x : w Local_gen.t] and [w] is a type-level witness corresponding to a (real
    or hypothetical) filesystem location [base], then we think of [x] as
    referring to the location [to_string base ^/ to_string x]. *)
module type Local_gen = sig
  type 'w t

  val hash : 'w t -> int

  (* it's not clear that these should be polymorphic over 'w, maybe they should
     additionally ask for an object that fixes 'w *)
  val to_string : 'w t -> string

  val of_string : string -> 'w t

  val parse_string_exn : loc:Loc0.t -> string -> 'w t

  (** a directory is smaller than its descendants *)
  val compare : 'w t -> 'w t -> Ordering.t

  val to_dyn : 'w t -> Dyn.t

  val extension : 'w t -> string

  (** [set_extension path ~ext] replaces extension of [path] by [ext] *)
  val set_extension : 'w t -> ext:string -> 'w t

  val split_extension : 'w t -> 'w t * string

  val basename : 'w t -> string

  val extend_basename : 'w t -> suffix:string -> 'w t

  module Fix_root (Root : sig
    type w
  end) : sig
    module Set : sig
      include Set.S with type elt = Root.w t

      val to_dyn : t Dyn.Encoder.t

      val of_listing : dir:elt -> filenames:string list -> t
    end

    module Map : Map.S with type key = Root.w t

    module Table : Hashtbl.S with type key = Root.w t
  end

  val relative : ?error_loc:Loc0.t -> 'w t -> string -> 'w t

  val to_string_maybe_quoted : 'w t -> string

  val is_descendant : 'w t -> of_:'w t -> bool

  val is_root : 'w t -> bool

  val parent_exn : 'w t -> 'w t

  val parent : 'w t -> 'w t option

  val explode : 'w t -> string list

  val root : 'w t

  val append : 'w t -> Unspecified.w t -> 'w t

  val descendant : 'w t -> of_:'w t -> Unspecified.w t option

  val reach : 'w t -> from:'w t -> string

  val split_first_component : 'w t -> (string * Unspecified.w t) option

  module L : sig
    val relative : ?error_loc:Loc0.t -> 'w t -> string list -> 'w t
  end
end
OCaml

Innovation. Community. Security.