Skip to content

joelburget/monaco-ocaml

Repository files navigation

monaco-ocaml

OCaml-CI Build Status

Ocaml bindings to Microsoft's Monaco editor (the editing core of VS Code).

Monaco

Monaco itself provides features like:

  • code navigation
    • go to definition / implementation / symbol
    • minimap
  • definition peeking
  • symbol renaming
  • errors and warnings
  • "quick fixes" (code actions)
  • themes
  • syntax highlighting for common languages
  • search and replace

These bindings

These bindings allow for creation and control of editors, as well as customization:

  • Creating declarative syntax highlighters, via Monarch
  • Defining custom completion suggestions
  • Defining new commands
  • Defining keybindings and actions
  • (soon) defining themes
  • (soon) side-by-side and inline diff editors

We build on the brr library for browser interaction. In fact, brr is the only dependency (other than dune to build and odoc for building docs).

The bindings are intended to be low-level (quite close to the original JavaScript). There is probably room for a higher-level library written on top. In particular, it might be nice to use Lwt / Async rather than callbacks which are used here.

We implement only a subset of the Monaco API, aiming to cover more over time. Please send a pull request if you need functionality we don't yet cover.

About

Ocaml bindings to Microsoft's Monaco editor

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages