Skip to content

Commit 163322c

Browse files
committed
refactor: rename module types
Signed-off-by: Rudi Grinberg <[email protected]>
1 parent e89ccb6 commit 163322c

File tree

7 files changed

+66
-62
lines changed

7 files changed

+66
-62
lines changed

ocaml-lsp-server/src/document.ml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ type t =
9494
; pipeline : Mpipeline.t Lazy_fiber.t
9595
; merlin : Lev_fiber.Thread.t
9696
; timer : Lev_fiber.Timer.Wheel.task
97-
; merlin_config : Merlin_config.Ref.t
97+
; merlin_config : Merlin_config.t
9898
; syntax : Syntax.t
9999
}
100100

@@ -157,7 +157,7 @@ let version t = Text_document.version (tdoc t)
157157

158158
let make_pipeline merlin_config thread tdoc =
159159
Lazy_fiber.create (fun () ->
160-
let* config = Merlin_config.Ref.config merlin_config in
160+
let* config = Merlin_config.config merlin_config in
161161
let* async_make_pipeline =
162162
Lev_fiber.Thread.task thread ~f:(fun () ->
163163
Text_document.text tdoc |> Msource.make |> Mpipeline.make config)
@@ -167,11 +167,11 @@ let make_pipeline merlin_config thread tdoc =
167167
| Ok s -> s
168168
| Error e -> Exn_with_backtrace.reraise e)
169169

170-
let make_merlin wheel merlin_config ~merlin_thread tdoc syntax =
170+
let make_merlin wheel merlin_db ~merlin_thread tdoc syntax =
171171
let+ timer = Lev_fiber.Timer.Wheel.task wheel in
172172
let merlin_config =
173173
let uri = Text_document.documentUri tdoc in
174-
Merlin_config.get merlin_config uri
174+
Merlin_config.DB.get merlin_db uri
175175
in
176176
let pipeline = make_pipeline merlin_config merlin_thread tdoc in
177177
Merlin
@@ -244,7 +244,7 @@ let close t =
244244
| Other _ -> Fiber.return ()
245245
| Merlin t ->
246246
Fiber.fork_and_join_unit
247-
(fun () -> Merlin_config.Ref.destroy t.merlin_config)
247+
(fun () -> Merlin_config.destroy t.merlin_config)
248248
(fun () -> Lev_fiber.Timer.Wheel.cancel t.timer)
249249

250250
let get_impl_intf_counterparts uri =

ocaml-lsp-server/src/document.mli

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ val syntax : t -> Syntax.t
3030

3131
val make :
3232
Lev_fiber.Timer.Wheel.t
33-
-> Merlin_config.t
33+
-> Merlin_config.DB.t
3434
-> merlin_thread:Lev_fiber.Thread.t
3535
-> DidOpenTextDocumentParams.t
3636
-> t Fiber.t

ocaml-lsp-server/src/merlin_config.ml

Lines changed: 43 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -190,18 +190,11 @@ module Process = struct
190190
{ pid; initial_cwd; stdin; stdout; session }
191191
end
192192

193-
type t =
193+
type db =
194194
{ running : (string, Process.t) Table.t
195195
; pool : Fiber.Pool.t
196196
}
197197

198-
let create () =
199-
{ running = Table.create (module String) 0; pool = Fiber.Pool.create () }
200-
201-
let run t = Fiber.Pool.run t.pool
202-
203-
let stop t = Fiber.Pool.stop t.pool
204-
205198
let get_process t ~dir =
206199
match Table.find t.running dir with
207200
| Some p -> Fiber.return p
@@ -318,40 +311,49 @@ let find_project_context start_dir =
318311
in
319312
loop None start_dir
320313

321-
module Ref = struct
322-
type nonrec t =
323-
{ path : string
324-
; directory : string
325-
; initial : Mconfig.t
326-
; db : t
314+
type nonrec t =
315+
{ path : string
316+
; directory : string
317+
; initial : Mconfig.t
318+
; db : db
319+
}
320+
321+
let destroy _ = Fiber.return ()
322+
323+
let create db path =
324+
let path =
325+
let path = Uri.to_path path in
326+
Misc.canonicalize_filename path
327+
in
328+
let directory = Filename.dirname path in
329+
let initial =
330+
let filename = Filename.basename path in
331+
let init = Mconfig.initial in
332+
{ init with
333+
ocaml = { init.ocaml with real_paths = false }
334+
; query = { init.query with filename; directory }
327335
}
336+
in
337+
{ path; directory; initial; db }
328338

329-
let destroy _ = Fiber.return ()
339+
let config (t : t) : Mconfig.t Fiber.t =
340+
let* () = Fiber.return () in
341+
match find_project_context t.directory with
342+
| None -> Fiber.return t.initial
343+
| Some (ctxt, config_path) ->
344+
let+ dot, failures = get_config t.db ctxt t.path in
345+
let merlin = Config.merge dot t.initial.merlin failures config_path in
346+
Mconfig.normalize { t.initial with merlin }
330347

331-
let create db path =
332-
let path =
333-
let path = Uri.to_path path in
334-
Misc.canonicalize_filename path
335-
in
336-
let directory = Filename.dirname path in
337-
let initial =
338-
let filename = Filename.basename path in
339-
let init = Mconfig.initial in
340-
{ init with
341-
ocaml = { init.ocaml with real_paths = false }
342-
; query = { init.query with filename; directory }
343-
}
344-
in
345-
{ path; directory; initial; db }
346-
347-
let config (t : t) : Mconfig.t Fiber.t =
348-
let* () = Fiber.return () in
349-
match find_project_context t.directory with
350-
| None -> Fiber.return t.initial
351-
| Some (ctxt, config_path) ->
352-
let+ dot, failures = get_config t.db ctxt t.path in
353-
let merlin = Config.merge dot t.initial.merlin failures config_path in
354-
Mconfig.normalize { t.initial with merlin }
355-
end
348+
module DB = struct
349+
type t = db
356350

357-
let get t uri = Ref.create t uri
351+
let get t uri = create t uri
352+
353+
let create () =
354+
{ running = Table.create (module String) 0; pool = Fiber.Pool.create () }
355+
356+
let run t = Fiber.Pool.run t.pool
357+
358+
let stop t = Fiber.Pool.stop t.pool
359+
end

ocaml-lsp-server/src/merlin_config.mli

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,22 @@
22

33
open Import
44

5-
module Ref : sig
6-
type t
5+
type t
76

8-
val config : t -> Mconfig.t Fiber.t
7+
val config : t -> Mconfig.t Fiber.t
98

10-
val destroy : t -> unit Fiber.t
11-
end
9+
val destroy : t -> unit Fiber.t
1210

13-
type t
11+
module DB : sig
12+
type config := t
1413

15-
val create : unit -> t
14+
type t
15+
16+
val create : unit -> t
1617

17-
val stop : t -> unit Fiber.t
18+
val stop : t -> unit Fiber.t
1819

19-
val run : t -> unit Fiber.t
20+
val run : t -> unit Fiber.t
2021

21-
val get : t -> Uri.t -> Ref.t
22+
val get : t -> Uri.t -> config
23+
end

ocaml-lsp-server/src/ocaml_lsp_server.ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1056,14 +1056,14 @@ let start () =
10561056
Fiber.all_concurrently_unit
10571057
[ Fiber.Pool.run detached
10581058
; Lev_fiber.Timer.Wheel.run wheel
1059-
; Merlin_config.run state.merlin_config
1059+
; Merlin_config.DB.run state.merlin_config
10601060
; (let* () = Server.start server in
10611061
let finalize =
10621062
[ Document_store.close_all store
10631063
; Fiber.Pool.stop detached
10641064
; Ocamlformat_rpc.stop ocamlformat_rpc
10651065
; Lev_fiber.Timer.Wheel.stop wheel
1066-
; Merlin_config.stop state.merlin_config
1066+
; Merlin_config.DB.stop state.merlin_config
10671067
]
10681068
in
10691069
let finalize =

ocaml-lsp-server/src/state.ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ type init =
1212
type t =
1313
{ store : Document_store.t
1414
; merlin : Lev_fiber.Thread.t
15-
; merlin_config : Merlin_config.t
15+
; merlin_config : Merlin_config.DB.t
1616
; init : init
1717
; detached : Fiber.Pool.t
1818
; configuration : Configuration.t
@@ -26,7 +26,7 @@ type t =
2626
let create ~store ~merlin ~detached ~configuration ~ocamlformat_rpc ~diagnostics
2727
~symbols_thread ~wheel =
2828
{ init = Uninitialized
29-
; merlin_config = Merlin_config.create ()
29+
; merlin_config = Merlin_config.DB.create ()
3030
; store
3131
; merlin
3232
; detached

ocaml-lsp-server/src/state.mli

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ type init =
1212
type t =
1313
{ store : Document_store.t
1414
; merlin : Lev_fiber.Thread.t
15-
; merlin_config : Merlin_config.t
15+
; merlin_config : Merlin_config.DB.t
1616
; init : init
1717
; detached : Fiber.Pool.t
1818
; configuration : Configuration.t

0 commit comments

Comments
 (0)