Skip to content

Commit f34394f

Browse files
committed
Refactor nest of mutual dependencies and inversion of control.
1 parent 091f40c commit f34394f

File tree

12 files changed

+989
-1014
lines changed

12 files changed

+989
-1014
lines changed

analysis/.depend

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
11
src/BuildSystem.cmx : src/ModuleResolution.cmx src/Log.cmx src/Infix.cmx \
22
src/Files.cmx
33
src/Cli.cmx : src/Commands.cmx
4-
src/Commands.cmx : src/Utils.cmx src/Uri2.cmx src/TopTypes.cmx src/State.cmx \
4+
src/Commands.cmx : src/Utils.cmx src/Uri2.cmx src/TopTypes.cmx \
55
src/SharedTypes.cmx src/Shared.cmx src/References.cmx src/Protocol.cmx \
6-
src/NewCompletions.cmx src/Hover.cmx src/Files.cmx
6+
src/ProcessCmt.cmx src/NewCompletions.cmx src/Hover.cmx src/Files.cmx
77
src/Files.cmx :
88
src/FindFiles.cmx : src/Utils.cmx src/SharedTypes.cmx \
99
src/ModuleResolution.cmx src/Log.cmx src/vendor/Json.cmx src/Infix.cmx \
1010
src/Files.cmx src/BuildSystem.cmx
1111
src/Hover.cmx : src/Utils.cmx src/SharedTypes.cmx src/Shared.cmx \
12-
src/References.cmx src/Query.cmx
12+
src/References.cmx src/ProcessCmt.cmx
1313
src/Infix.cmx : src/Log.cmx src/Files.cmx
1414
src/Log.cmx :
1515
src/ModuleResolution.cmx : src/Infix.cmx src/Files.cmx
1616
src/NewCompletions.cmx : src/Utils.cmx src/Uri2.cmx src/TopTypes.cmx \
17-
src/State.cmx src/SharedTypes.cmx src/Shared.cmx src/Query.cmx \
18-
src/Protocol.cmx src/PartialParser.cmx src/Log.cmx src/Infix.cmx \
19-
src/Hover.cmx
17+
src/SharedTypes.cmx src/Shared.cmx src/Protocol.cmx src/ProcessCmt.cmx \
18+
src/PartialParser.cmx src/Log.cmx src/Infix.cmx src/Hover.cmx
2019
src/Packages.cmx : src/Uri2.cmx src/TopTypes.cmx src/SharedTypes.cmx \
2120
src/Log.cmx src/vendor/Json.cmx src/Infix.cmx src/FindFiles.cmx \
2221
src/Files.cmx src/BuildSystem.cmx
@@ -25,24 +24,16 @@ src/PrepareUtils.cmx :
2524
src/PrintType.cmx : src/vendor/res_outcome_printer/res_outcome_printer.cmx \
2625
src/vendor/res_outcome_printer/res_doc.cmx
2726
src/ProcessAttributes.cmx : src/SharedTypes.cmx src/PrepareUtils.cmx
28-
src/ProcessCmt.cmx : src/Utils.cmx src/SharedTypes.cmx \
29-
src/ProcessAttributes.cmx src/Infix.cmx
30-
src/ProcessExtra.cmx : src/Utils.cmx src/SharedTypes.cmx src/Shared.cmx \
31-
src/Query.cmx src/ProcessCmt.cmx src/ProcessAttributes.cmx src/Log.cmx
32-
src/Process_406.cmx : src/SharedTypes.cmx src/Shared.cmx \
33-
src/ProcessExtra.cmx src/ProcessCmt.cmx src/PrintType.cmx \
34-
src/Process_406.cmi
35-
src/Process_406.cmi : src/Uri2.cmx src/SharedTypes.cmx
27+
src/ProcessCmt.cmx : src/Utils.cmx src/Uri2.cmx src/TopTypes.cmx \
28+
src/SharedTypes.cmx src/Shared.cmx src/ProcessAttributes.cmx \
29+
src/Packages.cmx src/Log.cmx src/Infix.cmx src/FindFiles.cmx \
30+
src/Files.cmx src/BuildSystem.cmx
3631
src/Protocol.cmx : src/vendor/Json.cmx
37-
src/Query.cmx : src/SharedTypes.cmx src/Log.cmx src/Infix.cmx
3832
src/References.cmx : src/Utils.cmx src/Uri2.cmx src/TopTypes.cmx \
39-
src/State.cmx src/SharedTypes.cmx src/Query.cmx src/Log.cmx src/Infix.cmx
33+
src/SharedTypes.cmx src/ProcessCmt.cmx src/Log.cmx src/Infix.cmx
4034
src/Shared.cmx : src/PrintType.cmx src/Files.cmx
4135
src/SharedTypes.cmx : src/Utils.cmx src/Uri2.cmx src/Shared.cmx \
4236
src/Infix.cmx
43-
src/State.cmx : src/Utils.cmx src/Uri2.cmx src/TopTypes.cmx \
44-
src/SharedTypes.cmx src/Process_406.cmx src/Packages.cmx src/Log.cmx \
45-
src/Infix.cmx src/FindFiles.cmx src/Files.cmx src/BuildSystem.cmx
4637
src/TopTypes.cmx : src/Uri2.cmx src/SharedTypes.cmx
4738
src/Uri2.cmx : src/Files.cmx
4839
src/Utils.cmx : src/Protocol.cmx

analysis/src/Commands.ml

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,13 @@ let dumpLocations ~package ~file ~extra =
55
in
66
locations
77
|> List.map (fun ((location : Location.t), loc) ->
8-
let hoverText =
9-
Hover.newHover ~file ~getModule:(State.fileForModule ~package) loc
10-
in
8+
let hoverText = Hover.newHover ~package ~file loc in
119
let hover =
1210
match hoverText with None -> "" | Some s -> String.escaped s
1311
in
1412
let uriLocOpt =
1513
References.definitionForLoc ~package ~file
16-
~getModule:(State.fileForModule ~package)
14+
~getModule:(ProcessCmt.fileForModule ~package)
1715
loc
1816
in
1917
let def =
@@ -33,7 +31,7 @@ let dump files =
3331
|> List.iter (fun path ->
3432
let uri = Uri2.fromLocalPath path in
3533
let result =
36-
match State.getFullFromCmt ~uri with
34+
match ProcessCmt.getFullFromCmt ~uri with
3735
| Error message ->
3836
prerr_endline message;
3937
"[]"
@@ -44,7 +42,7 @@ let dump files =
4442
let complete ~path ~line ~col ~currentFile =
4543
let uri = Uri2.fromLocalPath path in
4644
let result =
47-
match State.getFullFromCmt ~uri with
45+
match ProcessCmt.getFullFromCmt ~uri with
4846
| Error message ->
4947
prerr_endline message;
5048
"[]"
@@ -73,7 +71,7 @@ let hover ~file ~line ~col ~extra ~package =
7371
in
7472
let uriLocOpt =
7573
References.definitionForLoc ~package ~file
76-
~getModule:(State.fileForModule ~package)
74+
~getModule:(ProcessCmt.fileForModule ~package)
7775
loc
7876
in
7977
let skipZero =
@@ -89,7 +87,7 @@ let hover ~file ~line ~col ~extra ~package =
8987
if skipZero then Protocol.null
9088
else
9189
let hoverText =
92-
Hover.newHover ~file ~getModule:(State.fileForModule ~package) loc
90+
Hover.newHover ~file ~package loc
9391
in
9492
match hoverText with
9593
| None -> Protocol.null
@@ -98,7 +96,7 @@ let hover ~file ~line ~col ~extra ~package =
9896
let hover ~path ~line ~col =
9997
let uri = Uri2.fromLocalPath path in
10098
let result =
101-
match State.getFullFromCmt ~uri with
99+
match ProcessCmt.getFullFromCmt ~uri with
102100
| Error message -> Protocol.stringifyHover {contents = message}
103101
| Ok (package, {file; extra}) -> hover ~file ~line ~col ~extra ~package
104102
in
@@ -121,7 +119,7 @@ let definition ~file ~line ~col ~extra ~package =
121119
in
122120
let uriLocOpt =
123121
References.definitionForLoc ~package ~file
124-
~getModule:(State.fileForModule ~package)
122+
~getModule:(ProcessCmt.fileForModule ~package)
125123
loc
126124
in
127125
match uriLocOpt with
@@ -142,7 +140,7 @@ let definition ~file ~line ~col ~extra ~package =
142140
let definition ~path ~line ~col =
143141
let uri = Uri2.fromLocalPath path in
144142
let result =
145-
match State.getFullFromCmt ~uri with
143+
match ProcessCmt.getFullFromCmt ~uri with
146144
| Error _message -> Protocol.null
147145
| Ok (package, {file; extra}) -> definition ~file ~line ~col ~extra ~package
148146
in
@@ -161,9 +159,9 @@ let references ~file ~line ~col ~extra ~package =
161159
| Some (_, loc) ->
162160
let allReferences =
163161
References.allReferencesForLoc ~package ~file ~extra
164-
~allModules:package.localModules ~getUri:State.fileForUri
165-
~getModule:(State.fileForModule ~package)
166-
~getExtra:(State.extraForModule ~package)
162+
~allModules:package.localModules ~getUri:ProcessCmt.fileForUri
163+
~getModule:(ProcessCmt.fileForModule ~package)
164+
~getExtra:(ProcessCmt.extraForModule ~package)
167165
loc
168166
in
169167
let allLocs =
@@ -185,7 +183,7 @@ let references ~file ~line ~col ~extra ~package =
185183
let references ~path ~line ~col =
186184
let uri = Uri2.fromLocalPath path in
187185
let result =
188-
match State.getFullFromCmt ~uri with
186+
match ProcessCmt.getFullFromCmt ~uri with
189187
| Error _message -> Protocol.null
190188
| Ok (package, {file; extra}) -> references ~file ~line ~col ~extra ~package
191189
in

analysis/src/Hover.ml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
let digConstructor ~env ~getModule path =
2-
match Query.resolveFromCompilerPath ~env ~getModule path with
1+
let digConstructor ~env ~package path =
2+
match ProcessCmt.resolveFromCompilerPath ~env ~package path with
33
| `Not_found -> None
44
| `Stamp stamp -> (
55
match Hashtbl.find_opt env.file.stamps.types stamp with
@@ -47,7 +47,7 @@ let showModule ~docstring ~(file : SharedTypes.file) ~name
4747
showModuleTopLevel ~docstring ~name topLevel
4848
| Some {item = Ident _} -> Some "Unable to resolve module reference"
4949

50-
let newHover ~(file : SharedTypes.file) ~getModule loc =
50+
let newHover ~(file : SharedTypes.file) ~package loc =
5151
match loc with
5252
| SharedTypes.Explanation text -> Some text
5353
| TypeDefinition (name, decl, _stamp) ->
@@ -58,7 +58,7 @@ let newHover ~(file : SharedTypes.file) ~getModule loc =
5858
match Hashtbl.find_opt file.stamps.modules stamp with
5959
| None -> None
6060
| Some md -> (
61-
match References.resolveModuleReference ~file ~getModule md with
61+
match References.resolveModuleReference ~file ~package md with
6262
| None -> None
6363
| Some (file, declared) ->
6464
let name, docstring =
@@ -68,20 +68,20 @@ let newHover ~(file : SharedTypes.file) ~getModule loc =
6868
in
6969
showModule ~docstring ~name ~file declared))
7070
| LModule (GlobalReference (moduleName, path, tip)) -> (
71-
match getModule moduleName with
71+
match ProcessCmt.fileForModule ~package moduleName with
7272
| None -> None
7373
| Some file -> (
74-
let env = Query.fileEnv file in
75-
match Query.resolvePath ~env ~path ~getModule with
74+
let env = ProcessCmt.fileEnv file in
75+
match ProcessCmt.resolvePath ~env ~path ~package with
7676
| None -> None
7777
| Some (env, name) -> (
78-
match Query.exportedForTip ~env name tip with
78+
match ProcessCmt.exportedForTip ~env name tip with
7979
| None -> None
8080
| Some stamp -> (
8181
match Hashtbl.find_opt file.stamps.modules stamp with
8282
| None -> None
8383
| Some md -> (
84-
match References.resolveModuleReference ~file ~getModule md with
84+
match References.resolveModuleReference ~file ~package md with
8585
| None -> None
8686
| Some (file, declared) ->
8787
let name, docstring =
@@ -92,7 +92,7 @@ let newHover ~(file : SharedTypes.file) ~getModule loc =
9292
showModule ~docstring ~name ~file declared)))))
9393
| LModule NotFound -> None
9494
| TopLevelModule name -> (
95-
match getModule name with
95+
match ProcessCmt.fileForModule ~package name with
9696
| None -> None
9797
| Some file ->
9898
showModule ~docstring:file.contents.docstring ~name:file.moduleName ~file
@@ -113,11 +113,11 @@ let newHover ~(file : SharedTypes.file) ~getModule loc =
113113
let fromType ~docstring typ =
114114
let typeString = codeBlock (typ |> Shared.typeToString) in
115115
let extraTypeInfo =
116-
let env = Query.fileEnv file in
116+
let env = ProcessCmt.fileEnv file in
117117
match typ |> Shared.digConstructor with
118118
| None -> None
119119
| Some path -> (
120-
match digConstructor ~env ~getModule path with
120+
match digConstructor ~env ~package path with
121121
| None -> None
122122
| Some (_env, {docstring; name = {txt}; item = {decl}}) ->
123123
let isUncurriedInternal =
@@ -135,7 +135,7 @@ let newHover ~(file : SharedTypes.file) ~getModule loc =
135135
(typeString, docstring)
136136
in
137137
let parts =
138-
match References.definedForLoc ~file ~getModule locKind with
138+
match References.definedForLoc ~file ~package locKind with
139139
| None ->
140140
let typeString, docstring = t |> fromType ~docstring:[] in
141141
typeString :: docstring

0 commit comments

Comments
 (0)