diff --git a/bin/tools/tools.ml b/bin/tools/tools.ml index 760c9696b01..a31f3a30f52 100644 --- a/bin/tools/tools.ml +++ b/bin/tools/tools.ml @@ -7,7 +7,9 @@ module Exec = struct let group = Cmd.group info - (List.map [ Ocamlformat; Ocamllsp; Ocamlearlybird ] ~f:Tools_common.exec_command) + (List.map + [ Ocamlformat; Ocamllsp; Ocamlearlybird; Odig ] + ~f:Tools_common.exec_command) ;; end diff --git a/src/dune_pkg/dev_tool.ml b/src/dune_pkg/dev_tool.ml index c3e7969c7c3..189a1e734cf 100644 --- a/src/dune_pkg/dev_tool.ml +++ b/src/dune_pkg/dev_tool.ml @@ -6,6 +6,7 @@ type t = | Ocamllsp | Utop | Ocamlearlybird + | Odig let to_dyn = function | Ocamlformat -> Dyn.variant "Ocamlformat" [] @@ -13,9 +14,10 @@ let to_dyn = function | Ocamllsp -> Dyn.variant "Ocamllsp" [] | Utop -> Dyn.variant "Utop" [] | Ocamlearlybird -> Dyn.variant "Ocamlearlybird" [] + | Odig -> Dyn.variant "Odig" [] ;; -let all = [ Ocamlformat; Odoc; Ocamllsp; Utop; Ocamlearlybird ] +let all = [ Ocamlformat; Odoc; Ocamllsp; Utop; Ocamlearlybird; Odig ] let equal a b = match a, b with @@ -28,6 +30,8 @@ let equal a b = | Utop, Utop -> true | Utop, _ | _, Utop -> false | Ocamlearlybird, Ocamlearlybird -> true + | Ocamlearlybird, _ | _, Ocamlearlybird -> false + | Odig, Odig -> true ;; let package_name = function @@ -36,6 +40,7 @@ let package_name = function | Ocamllsp -> Package_name.of_string "ocaml-lsp-server" | Utop -> Package_name.of_string "utop" | Ocamlearlybird -> Package_name.of_string "earlybird" + | Odig -> Package_name.of_string "odig" ;; let of_package_name package_name = @@ -45,6 +50,7 @@ let of_package_name package_name = | "ocaml-lsp-server" -> Ocamllsp | "utop" -> Utop | "earlybird" -> Ocamlearlybird + | "odig" -> Odig | other -> User_error.raise [ Pp.textf "No such dev tool: %s" other ] ;; @@ -54,6 +60,7 @@ let exe_name = function | Ocamllsp -> "ocamllsp" | Utop -> "utop" | Ocamlearlybird -> "ocamlearlybird" + | Odig -> "odig" ;; let exe_path_components_within_package t = @@ -63,6 +70,7 @@ let exe_path_components_within_package t = | Ocamllsp -> [ "bin"; exe_name t ] | Utop -> [ "bin"; exe_name t ] | Ocamlearlybird -> [ "bin"; exe_name t ] + | Odig -> [ "bin"; exe_name t ] ;; let needs_to_build_with_same_compiler_as_project = function @@ -71,4 +79,5 @@ let needs_to_build_with_same_compiler_as_project = function | Ocamllsp -> true | Utop -> false | Ocamlearlybird -> false + | Odig -> false ;; diff --git a/src/dune_pkg/dev_tool.mli b/src/dune_pkg/dev_tool.mli index 962531ea4c1..5584fcf8c07 100644 --- a/src/dune_pkg/dev_tool.mli +++ b/src/dune_pkg/dev_tool.mli @@ -6,6 +6,7 @@ type t = | Ocamllsp | Utop | Ocamlearlybird + | Odig val to_dyn : t -> Dyn.t val all : t list diff --git a/test/blackbox-tests/test-cases/pkg/dev-tools-help-message.t b/test/blackbox-tests/test-cases/pkg/dev-tools-help-message.t index a5e11848a8a..877a67b2c3f 100644 --- a/test/blackbox-tests/test-cases/pkg/dev-tools-help-message.t +++ b/test/blackbox-tests/test-cases/pkg/dev-tools-help-message.t @@ -36,6 +36,12 @@ Output the help text: ocamllsp executable (pass flags to ocamllsp after the '--' argument, such as 'dune tools exec ocamllsp -- --help'). + odig [OPTION]… [ARGS]… + Wrapper for running odig intended to be run automatically by a + text editor. All positional arguments will be passed to the odig + executable (pass flags to odig after the '--' argument, such as + 'dune tools exec odig -- --help'). + COMMON OPTIONS --help[=FMT] (default=auto) Show this help in format FMT. The value FMT must be one of auto, diff --git a/test/blackbox-tests/test-cases/pkg/ocamllsp/dev-tool-ocamllsp-env-path-var.t b/test/blackbox-tests/test-cases/pkg/ocamllsp/dev-tool-ocamllsp-env-path-var.t index 5454d741375..f5b6589485f 100644 --- a/test/blackbox-tests/test-cases/pkg/ocamllsp/dev-tool-ocamllsp-env-path-var.t +++ b/test/blackbox-tests/test-cases/pkg/ocamllsp/dev-tool-ocamllsp-env-path-var.t @@ -28,6 +28,7 @@ Confirm that each dev tool's bin directory is now in PATH: - ocaml.5.2.0 - ocaml-lsp-server.0.0.1 Running 'ocamllsp' + $TESTCASE_ROOT/_build/_private/default/.dev-tool/odig/odig/target/bin $TESTCASE_ROOT/_build/_private/default/.dev-tool/earlybird/earlybird/target/bin $TESTCASE_ROOT/_build/_private/default/.dev-tool/utop/utop/target/bin $TESTCASE_ROOT/_build/_private/default/.dev-tool/ocaml-lsp-server/ocaml-lsp-server/target/bin