Skip to content

Commit 9513ffb

Browse files
authored
Merge pull request #1897 from BuckleScript/fix_merlin_file_generation_in_combination_of_namespace
fix merlin file generation in combination of merlin
2 parents a284d16 + 01e15d5 commit 9513ffb

File tree

11 files changed

+78
-31
lines changed

11 files changed

+78
-31
lines changed

jscomp/all.depend

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -752,13 +752,13 @@ bsb/bsb_clean.cmx : ext/ext_filename.cmx bsb/bsb_unix.cmx bsb/bsb_config.cmx \
752752
bsb/bsb_build_util.cmx bsb/bsb_clean.cmi
753753
bsb/bsb_config.cmx : ext/ext_filename.cmx bsb/bsb_config.cmi
754754
bsb/bsb_config_parse.cmx : ext/string_map.cmx ext/string_hash_set.cmx \
755-
ext/literals.cmx ext/ext_json_types.cmx ext/ext_json_parse.cmx \
756-
ext/ext_json.cmx ext/ext_filename.cmx ext/ext_file_pp.cmx \
757-
ext/ext_array.cmx bsb/bsb_watcher_gen.cmx bsb/bsb_pkg.cmx \
758-
bsb/bsb_parse_sources.cmx bsb/bsb_package_specs.cmx bsb/bsb_exception.cmx \
759-
bsb/bsb_dir_index.cmx bsb/bsb_default.cmx bsb/bsb_config_types.cmx \
760-
bsb/bsb_config.cmx bsb/bsb_build_util.cmx bsb/bsb_build_schemas.cmx \
761-
common/bs_version.cmx bsb/bsb_config_parse.cmi
755+
ext/literals.cmx ext/ext_package_name.cmx ext/ext_json_types.cmx \
756+
ext/ext_json_parse.cmx ext/ext_json.cmx ext/ext_filename.cmx \
757+
ext/ext_file_pp.cmx ext/ext_array.cmx bsb/bsb_watcher_gen.cmx \
758+
bsb/bsb_pkg.cmx bsb/bsb_parse_sources.cmx bsb/bsb_package_specs.cmx \
759+
bsb/bsb_exception.cmx bsb/bsb_dir_index.cmx bsb/bsb_default.cmx \
760+
bsb/bsb_config_types.cmx bsb/bsb_config.cmx bsb/bsb_build_util.cmx \
761+
bsb/bsb_build_schemas.cmx common/bs_version.cmx bsb/bsb_config_parse.cmi
762762
bsb/bsb_config_types.cmx : ext/string_map.cmx ext/string_hash_set.cmx \
763763
bsb/bsb_parse_sources.cmx bsb/bsb_package_specs.cmx
764764
bsb/bsb_default.cmx : bsb/bsb_config_types.cmx bsb/bsb_default.cmi
@@ -802,9 +802,8 @@ bsb/bsb_ninja_file_groups.cmx : ext/string_set.cmx ext/string_map.cmx \
802802
bsb/bsb_dir_index.cmx bsb/bsb_config.cmx bsb/bsb_build_schemas.cmx \
803803
bsb/bsb_build_cache.cmx bsb/bsb_ninja_file_groups.cmi
804804
bsb/bsb_ninja_gen.cmx : ext/string_map.cmx ext/literals.cmx \
805-
ext/ext_string.cmx ext/ext_package_name.cmx ext/ext_list.cmx \
806-
ext/ext_filename.cmx bsb/bsb_rule.cmx bsb/bsb_pkg_map_gen.cmx \
807-
bsb/bsb_parse_sources.cmx bsb/bsb_ninja_util.cmx \
805+
ext/ext_string.cmx ext/ext_list.cmx ext/ext_filename.cmx bsb/bsb_rule.cmx \
806+
bsb/bsb_pkg_map_gen.cmx bsb/bsb_parse_sources.cmx bsb/bsb_ninja_util.cmx \
808807
bsb/bsb_ninja_global_vars.cmx bsb/bsb_ninja_file_groups.cmx \
809808
bsb/bsb_dir_index.cmx bsb/bsb_config_types.cmx bsb/bsb_config.cmx \
810809
bsb/bsb_build_util.cmx bsb/bsb_build_schemas.cmx bsb/bsb_build_cache.cmx \

jscomp/bin/bsb.ml

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10485,8 +10485,7 @@ type reason_react_jsx = string option
1048510485
type t =
1048610486
{
1048710487
package_name : string ;
10488-
(* namespace : string option; *)
10489-
namespace : bool;
10488+
namespace : string option;
1049010489
external_includes : string list ;
1049110490
bsc_flags : string list ;
1049210491
ppx_flags : string list ;
@@ -11203,13 +11202,13 @@ let interpret_json
1120311202
| None ->
1120411203
failwith "Error: Package name is required. Please specify a `name` in `bsconfig.json`"
1120511204
) in
11206-
(* let namespace =
11205+
let namespace =
1120711206
if !namespace then
1120811207
Some (Ext_package_name.module_name_of_package_name package_name)
11209-
else None in *)
11208+
else None in
1121011209
{
1121111210
package_name ;
11212-
namespace = !namespace;
11211+
namespace ;
1121311212
external_includes = !bs_external_includes;
1121411213
bsc_flags = !bsc_flags ;
1121511214
ppx_flags = !ppx_flags ;
@@ -11351,6 +11350,15 @@ let merlin_b = "\nB "
1135111350
let merlin_flg = "\nFLG "
1135211351
let bs_flg_prefix = "-bs-"
1135311352

11353+
let output_merlin_namespace buffer ns=
11354+
match ns with
11355+
| None -> ()
11356+
| Some x ->
11357+
Buffer.add_string buffer merlin_b ;
11358+
Buffer.add_string buffer Bsb_config.lib_bs ;
11359+
Buffer.add_string buffer merlin_flg ;
11360+
Buffer.add_string buffer "-open ";
11361+
Buffer.add_string buffer x
1135411362

1135511363
let bsc_flg_to_merlin_ocamlc_flg bsc_flags =
1135611364
merlin_flg ^
@@ -11370,10 +11378,18 @@ let merlin_file_gen ~cwd
1137011378
built_in_dependency;
1137111379
external_includes;
1137211380
reason_react_jsx ;
11381+
namespace;
11382+
package_name
1137311383
} : Bsb_config_types.t)
1137411384
=
1137511385
if generate_merlin then begin
1137611386
let buffer = Buffer.create 1024 in
11387+
(* let namespace =
11388+
if namespace then
11389+
(Some (Ext_package_name.module_name_of_package_name package_name))
11390+
else None
11391+
in *)
11392+
output_merlin_namespace buffer namespace;
1137711393
ppx_flags
1137811394
|> List.iter (fun x ->
1137911395
Buffer.add_string buffer (merlin_flg_ppx ^ x )
@@ -17531,10 +17547,10 @@ let output_ninja_and_namespace_map
1753117547
Bsb_build_util.flag_concat dash_i @@ List.map
1753217548
(fun (x : Bsb_config_types.dependency) -> x.package_install_path) bs_dev_dependencies
1753317549
in
17534-
let namespace =
17550+
(* let namespace =
1753517551
if namespace then
1753617552
Some ( Ext_package_name.module_name_of_package_name package_name)
17537-
else None in
17553+
else None in *)
1753817554
begin
1753917555
let () =
1754017556

@@ -18070,10 +18086,10 @@ let install_targets cwd (config : Bsb_config_types.t option) =
1807018086
Format.fprintf Format.std_formatter "@{<info>Installing started@}@.";
1807118087
(*Format.pp_print_flush Format.std_formatter ();*)
1807218088
(* Format.fprintf Format.std_formatter "@{<info>%s@} Installed @." x; *)
18073-
let namespace =
18089+
(* let namespace =
1807418090
if namespace then
1807518091
Some (Ext_package_name.module_name_of_package_name package_name)
18076-
else None in
18092+
else None in *)
1807718093
(match namespace with
1807818094
| None -> ()
1807918095
| Some x ->

jscomp/bsb/bsb_config_parse.ml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -259,13 +259,13 @@ let interpret_json
259259
| None ->
260260
failwith "Error: Package name is required. Please specify a `name` in `bsconfig.json`"
261261
) in
262-
(* let namespace =
262+
let namespace =
263263
if !namespace then
264264
Some (Ext_package_name.module_name_of_package_name package_name)
265-
else None in *)
265+
else None in
266266
{
267267
package_name ;
268-
namespace = !namespace;
268+
namespace ;
269269
external_includes = !bs_external_includes;
270270
bsc_flags = !bsc_flags ;
271271
ppx_flags = !ppx_flags ;

jscomp/bsb/bsb_config_types.ml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ type reason_react_jsx = string option
3838
type t =
3939
{
4040
package_name : string ;
41-
(* namespace : string option; *)
42-
namespace : bool;
41+
namespace : string option;
4342
external_includes : string list ;
4443
bsc_flags : string list ;
4544
ppx_flags : string list ;

jscomp/bsb/bsb_merlin_gen.ml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,15 @@ let merlin_b = "\nB "
7979
let merlin_flg = "\nFLG "
8080
let bs_flg_prefix = "-bs-"
8181

82+
let output_merlin_namespace buffer ns=
83+
match ns with
84+
| None -> ()
85+
| Some x ->
86+
Buffer.add_string buffer merlin_b ;
87+
Buffer.add_string buffer Bsb_config.lib_bs ;
88+
Buffer.add_string buffer merlin_flg ;
89+
Buffer.add_string buffer "-open ";
90+
Buffer.add_string buffer x
8291

8392
let bsc_flg_to_merlin_ocamlc_flg bsc_flags =
8493
merlin_flg ^
@@ -98,10 +107,18 @@ let merlin_file_gen ~cwd
98107
built_in_dependency;
99108
external_includes;
100109
reason_react_jsx ;
110+
namespace;
111+
package_name
101112
} : Bsb_config_types.t)
102113
=
103114
if generate_merlin then begin
104115
let buffer = Buffer.create 1024 in
116+
(* let namespace =
117+
if namespace then
118+
(Some (Ext_package_name.module_name_of_package_name package_name))
119+
else None
120+
in *)
121+
output_merlin_namespace buffer namespace;
105122
ppx_flags
106123
|> List.iter (fun x ->
107124
Buffer.add_string buffer (merlin_flg_ppx ^ x )

jscomp/bsb/bsb_ninja_gen.ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,10 @@ let output_ninja_and_namespace_map
8585
Bsb_build_util.flag_concat dash_i @@ List.map
8686
(fun (x : Bsb_config_types.dependency) -> x.package_install_path) bs_dev_dependencies
8787
in
88-
let namespace =
88+
(* let namespace =
8989
if namespace then
9090
Some ( Ext_package_name.module_name_of_package_name package_name)
91-
else None in
91+
else None in *)
9292
begin
9393
let () =
9494

jscomp/bsb/bsb_world.ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,10 @@ let install_targets cwd (config : Bsb_config_types.t option) =
6363
Format.fprintf Format.std_formatter "@{<info>Installing started@}@.";
6464
(*Format.pp_print_flush Format.std_formatter ();*)
6565
(* Format.fprintf Format.std_formatter "@{<info>%s@} Installed @." x; *)
66-
let namespace =
66+
(* let namespace =
6767
if namespace then
6868
Some (Ext_package_name.module_name_of_package_name package_name)
69-
else None in
69+
else None in *)
7070
(match namespace with
7171
| None -> ()
7272
| Some x ->
Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11

22

33
var child_process = require('child_process')
4-
4+
var fs = require('fs')
5+
var path = require('path')
56
child_process.execSync(`bsb -clean-world && bsb -make-world`, {cwd:__dirname, stdio:[0,1,2]})
67

78
var x = require('./src/demo.js')
89
var assert = require('assert')
910

10-
assert.equal(x.v, 3 )
11+
assert.equal(x.v, 3 )
12+
13+
var merlin = fs.readFileSync(path.join(__dirname,'.merlin'), {encoding:'utf8'})
14+
15+
assert.ok(merlin.includes('-open'))
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11

22

3-
let v =
3+
let v =
44
(Liba.Demo.v + Libb.Demo.v)

jscomp/build_tests/namespace/src/main.js

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)