From 2a03208fdae9eb580b7204fa21fdfa857f8812d5 Mon Sep 17 00:00:00 2001 From: Radon Rosborough Date: Sun, 19 Jul 2020 18:22:22 -0600 Subject: [PATCH] Formatter and LSP for OCaml --- backend/src/langs.ts | 3 +++ scripts/docker-install-phase3c.bash | 3 ++- scripts/docker-install-phase4.bash | 11 +++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/backend/src/langs.ts b/backend/src/langs.ts index 21e0e70..942ac89 100644 --- a/backend/src/langs.ts +++ b/backend/src/langs.ts @@ -1158,6 +1158,9 @@ int main() { main: "main.ml", repl: "ocaml", run: "ocaml -init main.ml", + format: "ocamlformat main.ml", + lsp: "ocamllsp", + lspLang: "ocaml", template: `print_string "Hello, world!\\n";; `, }, diff --git a/scripts/docker-install-phase3c.bash b/scripts/docker-install-phase3c.bash index 0633966..b02aa5e 100755 --- a/scripts/docker-install-phase3c.bash +++ b/scripts/docker-install-phase3c.bash @@ -33,8 +33,9 @@ yarn gcc gnustep-devel -# Ocaml +# OCaml ocaml +opam # Octave octave diff --git a/scripts/docker-install-phase4.bash b/scripts/docker-install-phase4.bash index acb1c8b..2b00846 100755 --- a/scripts/docker-install-phase4.bash +++ b/scripts/docker-install-phase4.bash @@ -8,6 +8,11 @@ set -x mkdir /opt/julia export JULIA_DEPOT_PATH=/opt/julia +# Package manager - OCaml +export OPAMROOT=/opt/opam +export OPAMROOTISOK=1 +opam init -n --disable-sandboxing + # Package manager - Node.js npm config set unsafe-perm true PERL_MM_USE_DEFAULT=1 cpan App::cpanminus @@ -67,6 +72,12 @@ npm install -g less # LiveScript npm install -g livescript +# OCaml +opam install -y ocamlformat +opam pin add -y ocaml-lsp-server https://github.com/ocaml/ocaml-lsp.git +ln -s /opt/opam/default/bin/ocamlformat /usr/local/bin/ocamlformat +ln -s /opt/opam/default/bin/ocamllsp /usr/local/bin/ocamllsp + # Perl cpanm -n Devel::REPL