Skip to content

feat(codeactions): open Implementation/Interface/Compiled and create Interface #767

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
Prev Previous commit
Next Next commit
restore FindFiles
  • Loading branch information
aspeddro committed Apr 28, 2023
commit 80be0ab612e2017effc3530bd78a43b3613a4c81
43 changes: 0 additions & 43 deletions analysis/src/FindFiles.ml
Original file line number Diff line number Diff line change
Expand Up @@ -258,46 +258,3 @@ let findDependencyFiles base config =
in
let allFiles = projectFiles @ collectFiles stdlibDirectory in
Some (compiledDirectories, allFiles)

let getSuffix config =
config |> Json.get "suffix" |> bind Json.string |> Option.value ~default:".js"

type packageSpec = {
module_format: string;
in_source: bool;
suffix: string option;
}
let getPackageSpec config =
let get_spec obj =
let module_format =
obj |> Json.get "module" |> bind Json.string
|> Option.value ~default:"commonjs"
in
let in_source =
obj |> Json.get "in-source" |> bind Json.bool
|> Option.value ~default:false
in
let suffix = obj |> Json.get "suffix" |> bind Json.string in
{module_format; in_source; suffix}
in

let spec = config |> Json.get "package-specs" in
match spec with
| Some s -> (
let isArray = spec |> bind Json.array in
match isArray with
| Some arr -> (
(* Get the first element *)
match arr with
| first :: _ -> Some (get_spec first)
| [] -> None)
(* Object config *)
| None -> Some (get_spec s))
| None -> None

let rec findProjectRoot ~dir =
let bsconfigFile = dir /+ "bsconfig.json" in
if Sys.file_exists bsconfigFile then Some dir
else
let parent = dir |> Filename.dirname in
if parent = dir then None else findProjectRoot ~dir:parent
7 changes: 7 additions & 0 deletions analysis/tests/not_compiled/expected/DocTemplate.res.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
Xform not_compiled/DocTemplate.res 3:3
can't find module DocTemplate
Hit: Open DocTemplate.resi
Hit: Open Compiled JS
Hit: Add Documentation template
{"start": {"line": 3, "character": 0}, "end": {"line": 5, "character": 9}}
newText:
Expand All @@ -15,6 +16,7 @@ and e = C
Xform not_compiled/DocTemplate.res 6:15
can't find module DocTemplate
Hit: Open DocTemplate.resi
Hit: Open Compiled JS
Hit: Add Documentation template
{"start": {"line": 6, "character": 0}, "end": {"line": 6, "character": 33}}
newText:
Expand All @@ -28,6 +30,7 @@ type name = Name(string)
Xform not_compiled/DocTemplate.res 8:4
can't find module DocTemplate
Hit: Open DocTemplate.resi
Hit: Open Compiled JS
Hit: Add Documentation template
{"start": {"line": 8, "character": 0}, "end": {"line": 8, "character": 9}}
newText:
Expand All @@ -40,6 +43,7 @@ let a = 1
Xform not_compiled/DocTemplate.res 10:4
can't find module DocTemplate
Hit: Open DocTemplate.resi
Hit: Open Compiled JS
Hit: Add Documentation template
{"start": {"line": 10, "character": 0}, "end": {"line": 10, "character": 20}}
newText:
Expand All @@ -52,6 +56,7 @@ let inc = x => x + 1
Xform not_compiled/DocTemplate.res 12:7
can't find module DocTemplate
Hit: Open DocTemplate.resi
Hit: Open Compiled JS
Hit: Add Documentation template
{"start": {"line": 12, "character": 0}, "end": {"line": 16, "character": 1}}
newText:
Expand All @@ -68,6 +73,7 @@ module T = {
Xform not_compiled/DocTemplate.res 14:6
can't find module DocTemplate
Hit: Open DocTemplate.resi
Hit: Open Compiled JS
Hit: Add Documentation template
{"start": {"line": 14, "character": 2}, "end": {"line": 14, "character": 11}}
newText:
Expand All @@ -80,6 +86,7 @@ newText:
Xform not_compiled/DocTemplate.res 18:2
can't find module DocTemplate
Hit: Open DocTemplate.resi
Hit: Open Compiled JS
Hit: Add Documentation template
{"start": {"line": 17, "character": 0}, "end": {"line": 18, "character": 46}}
newText:
Expand Down
7 changes: 7 additions & 0 deletions analysis/tests/not_compiled/expected/DocTemplate.resi.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
Xform not_compiled/DocTemplate.resi 3:3
Hit: Open Compiled JS
Hit: Open DocTemplate.res
Hit: Add Documentation template
{"start": {"line": 3, "character": 0}, "end": {"line": 5, "character": 9}}
Expand All @@ -12,6 +13,7 @@ type rec t = A | B
and e = C

Xform not_compiled/DocTemplate.resi 6:15
Hit: Open Compiled JS
Hit: Open DocTemplate.res
Hit: Add Documentation template
{"start": {"line": 6, "character": 0}, "end": {"line": 6, "character": 33}}
Expand All @@ -24,6 +26,7 @@ newText:
type name = Name(string)

Xform not_compiled/DocTemplate.resi 8:4
Hit: Open Compiled JS
Hit: Open DocTemplate.res
Hit: Add Documentation template
{"start": {"line": 8, "character": 0}, "end": {"line": 8, "character": 10}}
Expand All @@ -35,6 +38,7 @@ newText:
let a: int

Xform not_compiled/DocTemplate.resi 10:4
Hit: Open Compiled JS
Hit: Open DocTemplate.res
Hit: Add Documentation template
{"start": {"line": 10, "character": 0}, "end": {"line": 10, "character": 19}}
Expand All @@ -46,6 +50,7 @@ newText:
let inc: int => int

Xform not_compiled/DocTemplate.resi 12:7
Hit: Open Compiled JS
Hit: Open DocTemplate.res
Hit: Add Documentation template
{"start": {"line": 12, "character": 0}, "end": {"line": 16, "character": 1}}
Expand All @@ -61,6 +66,7 @@ module T: {
}

Xform not_compiled/DocTemplate.resi 14:6
Hit: Open Compiled JS
Hit: Open DocTemplate.res
Hit: Add Documentation template
{"start": {"line": 14, "character": 2}, "end": {"line": 14, "character": 12}}
Expand All @@ -72,6 +78,7 @@ newText:
let b: int

Xform not_compiled/DocTemplate.resi 18:2
Hit: Open Compiled JS
Hit: Open DocTemplate.res
Hit: Add Documentation template
{"start": {"line": 17, "character": 0}, "end": {"line": 18, "character": 46}}
Expand Down
12 changes: 12 additions & 0 deletions analysis/tests/src/expected/Xform.res.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
Xform src/Xform.res 6:5
Hit: Create Xform.resi
Hit: Open Compiled JS
Hit: Replace with switch
{"start": {"line": 6, "character": 0}, "end": {"line": 11, "character": 1}}
newText:
Expand All @@ -13,6 +14,7 @@ switch kind {

Xform src/Xform.res 13:15
Hit: Create Xform.resi
Hit: Open Compiled JS
Hit: Replace with switch
{"start": {"line": 13, "character": 0}, "end": {"line": 13, "character": 79}}
newText:
Expand All @@ -29,6 +31,7 @@ newText:
<--here
: string
Hit: Create Xform.resi
Hit: Open Compiled JS
Hit: Add Documentation template
{"start": {"line": 16, "character": 0}, "end": {"line": 16, "character": 18}}
newText:
Expand All @@ -40,6 +43,7 @@ let name = "hello"

Xform src/Xform.res 19:5
Hit: Create Xform.resi
Hit: Open Compiled JS
Hit: Add Documentation template
{"start": {"line": 19, "character": 0}, "end": {"line": 19, "character": 23}}
newText:
Expand All @@ -56,9 +60,11 @@ newText:
<--here
(x: option<T.r>)
Hit: Create Xform.resi
Hit: Open Compiled JS

Xform src/Xform.res 30:9
Hit: Create Xform.resi
Hit: Open Compiled JS
Hit: Add braces to function
{"start": {"line": 26, "character": 0}, "end": {"line": 32, "character": 3}}
newText:
Expand All @@ -79,9 +85,11 @@ newText:
<--here
: int
Hit: Create Xform.resi
Hit: Open Compiled JS

Xform src/Xform.res 38:5
Hit: Create Xform.resi
Hit: Open Compiled JS
Hit: Add Documentation template
{"start": {"line": 37, "character": 0}, "end": {"line": 38, "character": 40}}
newText:
Expand All @@ -99,9 +107,11 @@ newText:
<--here
: int
Hit: Create Xform.resi
Hit: Open Compiled JS

Xform src/Xform.res 48:21
Hit: Create Xform.resi
Hit: Open Compiled JS
Hit: Add braces to function
{"start": {"line": 48, "character": 0}, "end": {"line": 48, "character": 25}}
newText:
Expand All @@ -112,6 +122,7 @@ let noBraces = () => {

Xform src/Xform.res 52:34
Hit: Create Xform.resi
Hit: Open Compiled JS
Hit: Add braces to function
{"start": {"line": 51, "character": 0}, "end": {"line": 54, "character": 1}}
newText:
Expand All @@ -125,6 +136,7 @@ let nested = () => {

Xform src/Xform.res 62:6
Hit: Create Xform.resi
Hit: Open Compiled JS
Hit: Add braces to function
{"start": {"line": 58, "character": 4}, "end": {"line": 62, "character": 7}}
newText:
Expand Down