Need help with vscode-ocaml-platform?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

ocamllabs
169 Stars 24 Forks ISC License 1.3K Commits 41 Opened issues

Description

Visual Studio Code extension for OCaml

Services available

!
?

Need anything else?

Contributors list

VSCode OCaml Platform

Main workflow

Visual Studio Code extension for OCaml and relevant tools.

Please report any bugs you encounter.

Quick start

  1. Install this extension from the VSCode Marketplace (or by entering
    ext install ocamllabs.ocaml-platform
    at the command palette Ctrl+Shift+P (Cmd+Shift+P on MacOS)
  2. Open a OCaml/ReasonML project (
    File > Add Folder to Workspace...
    )
  3. Install OCaml-LSP with opam or esy. E.g.
    opam install ocaml-lsp-server

Windows

Install OCaml for Windows and make sure the

ocaml-env
program is accessible on the PATH (
ocaml-env
is in the
usr/local/bin
folder relative to the installation directory).

ReScript / BuckleScript

The new ReScript syntax (

res
and
resi
files) is not supported, you should use rescript-vscode instead.

ReasonML, as an alternative syntax for OCaml, is supported out-of-the-box, as long as

reason
is installed in your environment.

If you're looking for a way to use OCaml or ReasonML syntax in a ReScript project, you'll need to install

ocaml-lsp
in your environment. We recommend using Esy for this:
  1. Install esy
npm install esy --global
  1. Add
    esy.json
    to the project root with following content:
{
  "dependencies": {
    "@opam/ocaml-lsp-server": "*",
    "@opam/ocamlfind-secondary": "*",
    "@opam/reason": "*",
    "ocaml": "4.6.x"
  }
}
  1. Install and build packages
esy

Features

  • Syntax highlighting
    • ATD
    • Cram tests
    • Dune
    • Menhir
    • Merlin
    • META
    • OASIS
    • OCaml
    • OCamlbuild
    • OCamlFormat
    • OCamllex
    • opam
    • ReasonML
    • Eliom
  • Indentation rules
  • Snippets
    • Dune
    • OCaml
    • OCamllex
  • Task Provider
    • Dune

Configuration

This extension provides options in VSCode's configuration settings. You can find the settings under

File > Preferences > Settings
.

| Name | Description | Default | | ---------------------------------- | ------------------------------------------------------------------------------------------------------- | ------- | |

ocaml.sandbox
| Determines where to find the sandbox for a given project |
null
| |
ocaml.dune.autoDetect
| Controls whether dune tasks should be automatically detected. |
true
| |
ocaml.trace.server
| Controls the logging output of the language server. Valid settings are
off
,
messages
, or
verbose
. |
off
| |
ocaml.useOcamlEnv
| Controls whether to use ocaml-env for opam commands from OCaml for Windows. |
true
| |
ocaml.terminal.shell.linux
| The path of the shell that the sandbox terminal uses on Linux |
null
| |
ocaml.terminal.shell.osx
| The path of the shell that the sandbox terminal uses on macOS |
null
| |
ocaml.terminal.shell.windows
| The path of the shell that the sandbox terminal uses on Windows |
null
| |
ocaml.terminal.shellArgs.linux
| The command line arguments that the sandbox terminal uses on Linux |
null
| |
ocaml.terminal.shellArgs.osx
| The command line arguments that the sandbox terminal uses on macOS |
null
| |
ocaml.terminal.shellArgs.windows
| The command line arguments that the sandbox terminal uses on Window |
null
|

If

ocaml.terminal.shell.*
or
ocaml.terminal.shellArgs.*
is
null
, the configured VSCode shell and shell arguments will be used instead.

Commands

You can execute it by entering the following command at the command palette Ctrl+P (Cmd+Shift+P on MacOS).

| Name | Description | Keyboard Shortcuts | Menu Contents | | ---------------------------- | ------------------------------------------- | ------------------ | ------------- | |

ocaml.select-sandbox
| Select sandbox for this workspace | | | |
ocaml.server.restart
| Restart language server | | | |
ocaml.open-terminal
| Open a terminal (current sandbox) | | | |
ocaml.open-terminal-select
| Open a terminal (select a sandbox) | | | |
ocaml.current-dune-file
| Open Dune File (located in the same folder) | | |

Requirements

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.