Skip to content

uinz/rescript-vscode

 
 

Repository files navigation

rescript-vscode

The official VSCode plugin for ReScript.

Screen shot

Prerequisite

You must have bs-platform >=8.3.3 installed locally in your project, through the usual npm installation. Older versions are not guaranteed to work.

Recommendation

Our highlighting works well with most popular VSCode themes, such as:

  • Dark+ (default dark), Light+ (default light)
  • Solarized Dark, Solarized Light
  • Monokai Dimmed
  • Tomorrow Night Blue
  • One Dark Pro
  • Mariana Pro

The only 2 themes we don't (and can't) support, due to their lack of coloring, are:

  • Dark (Visual Studio), Light (Visual Studio)

If your custom theme doesn't seem to highlight much (e.g. no colors for upper-case JSX tag, no distinction between module and variant), try one of the recommended themes to see if that's the problem. For more info, see this post.

Installation

The plugin's on VSCode Marketplace. In VSCode, cmd-shift-p -> "Install Extensions", then find "rescript-vscode".

The plugin activates on .res and .resi files. If you've already got Reason-Language-Server installed, it's possible that the latter took precedence over this one. Make sure you're using this plugin ("ReScript syntax") rather than Reason-Language-Server ("BuckleScript syntax").

Features

  • Supports .res, .resi and bsconfig.json.
  • Syntax highlighting.
  • Formatting, with caveats:
    • Currently requires the file to be part of a ReScript project, i.e. with a bsconfig.json.
    • Cannot be a temporary file.
  • Build diagnostics.
  • Built-in bsb watcher (optional, and exposed explicitly as a pop-up; no worries of dangling build).
  • Type hint hover.
  • Jump to definition.
  • Autocomplete.
  • Find references.
  • Rename.
  • Snippets to ease a few syntaxes:
    • external features such as @bs.module and @bs.val
    • try, for, etc.
  • Folding, and custom folding through //#region and //#endregion.

Use with Other Editors

This repo also contains a language server that can power other editors. However, the language server in this project is a pure implementation detail. We don't guarantee its stability for other editors' consumption apart from Vim and Sublime Text.

Still, if you'd like to use this language-server with other editors:

  • Get the release binaries from the Github Releases page.
  • Unzip the .vsix and get the server folder. That's the only folder you need.
  • The language server will be at server/out/server.js. Call it through node, and optionally pass --stdio if your editor doesn't support the default JSONRPC.

About

Official VSCode plugin for ReScript

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • OCaml 68.6%
  • TypeScript 16.8%
  • ReScript 13.9%
  • Makefile 0.4%
  • Shell 0.3%
  • Standard ML 0.0%