All Projects → freebroccolo → Ocaml Language Server

freebroccolo / Ocaml Language Server

Licence: apache-2.0
A language server for OCaml and related languages

Programming Languages

typescript
32286 projects
ocaml
1615 projects
reason
219 projects
bucklescript
41 projects

Projects that are alternatives of or similar to Ocaml Language Server

benten
A language server for Common Workflow Language
Stars: ✭ 50 (-78.99%)
Mutual labels:  language-server, ide
scalavista-server
A minimalistic Scala language-server
Stars: ✭ 14 (-94.12%)
Mutual labels:  language-server, ide
Php Language Server
PHP Implementation of the VS Code Language Server Protocol 🆚↔🖥
Stars: ✭ 1,019 (+328.15%)
Mutual labels:  ide, language-server
atom-ide-scala
Scala & Dotty support for Atom IDE (🧟‍♂️ zombie repo)
Stars: ✭ 47 (-80.25%)
Mutual labels:  language-server, ide
Clangd
clangd language server
Stars: ✭ 293 (+23.11%)
Mutual labels:  ide, language-server
Erlang ls
The Erlang Language Server
Stars: ✭ 363 (+52.52%)
Mutual labels:  ide, language-server
Metals
Scala language server with rich IDE features 🚀
Stars: ✭ 1,605 (+574.37%)
Mutual labels:  ide, language-server
Bas
BrowserAutomationStudio can automate everything that Chrome can.
Stars: ✭ 203 (-14.71%)
Mutual labels:  ide
Meghanada Server
A Java IDE Server for your editor. Java IDE-like features to your favourite text editor.
Stars: ✭ 213 (-10.5%)
Mutual labels:  ide
Atom Ide Rust
Rust IDE support for Atom, powered by the Rust Language Server (RLS)
Stars: ✭ 200 (-15.97%)
Mutual labels:  ide
Gruvbox Idea
A Gruvbox Theme for IDEA IDEs
Stars: ✭ 197 (-17.23%)
Mutual labels:  ide
Vscode Nim
An extension for VS Code which provides support for the Nim language.
Stars: ✭ 204 (-14.29%)
Mutual labels:  ide
Edi
Edi - The open source text editor IDE based on AvalonDock and AvalonEdit
Stars: ✭ 220 (-7.56%)
Mutual labels:  ide
Addon Vscode
Visual Studio Code - Home Assistant Community Add-ons
Stars: ✭ 201 (-15.55%)
Mutual labels:  ide
Csharp Language Server Protocol
Language Server Protocol in C#
Stars: ✭ 230 (-3.36%)
Mutual labels:  language-server
Awesome Online Ide
🌩️ A list of awesome online development environments
Stars: ✭ 2,542 (+968.07%)
Mutual labels:  ide
Vshaxe
Haxe Support for Visual Studio Code
Stars: ✭ 234 (-1.68%)
Mutual labels:  language-server
Theia
Eclipse Theia is a cloud & desktop IDE framework implemented in TypeScript.
Stars: ✭ 15,920 (+6589.08%)
Mutual labels:  ide
Intelephense
Intellisense for PHP
Stars: ✭ 212 (-10.92%)
Mutual labels:  language-server
Fsautocomplete
F# language server using Language Server Protocol
Stars: ✭ 208 (-12.61%)
Mutual labels:  language-server

ocaml-language-server

A language server for OCaml and Reason

Overview

The OCaml Language Server is an implementation of the Language Server Protocol (LSP) for OCaml, Reason, and related tooling, including support for BuckleScript.

The OCaml Language Server works by providing a standardized JSON-RPC interface (via the LSP) to existing OCaml and Reason tooling. This makes it much easier to provide a uniform development experience across the different editors without duplication of effort.

The OCaml Language Server is not intended to be a replacement for existing OCaml and Reason language tooling. It is intended to make existing language tooling–much of which is excellent and has been developed with great effort–easier to integrate into editors and more accessible to users without requiring extensive configuration effort.

Features

The OCaml Language Server supports the following LSP capabilities and custom features:

  • [x] OCaml support
  • [x] Reason support
  • [x] BuckleScript build system
  • [x] compiler diagnostics
  • [x] incremental document synchronization
  • [x] code action provider
  • [x] code lens provider
  • [x] completion provider
  • [x] definition provider
  • [x] document formatting provider
  • [x] document highlight provider
  • [x] document range formatting provider (Reason)
  • [x] document symbol provider
  • [x] hover provider
  • [x] references provider
  • [x] workspace symbol provider

Clients

The following editor plugins are configured to work with the OCaml Language Server:

Installation

Server

Installation

Some clients (noted above) do not ship the server and require it to be installed separately:

npm install -g ocaml-language-server

You also need to globally install Merlin, used by this project under the hood. Try https://github.com/reasonml/reason-cli or, if you're using OPAM, opam install merlin. If you're using Reason with BuckleScript, make sure you're on the 4.02.3 ocaml switch and do opam install merlin.2.5.4.

Launching

Manually launching the server should only be necessary if you are using a custom configuration or an LSP client that is not already configured for the OCaml Language Server. In that case, the server can be started with one of the following commands:

ocaml-language-server --node-ipc          # communicate over the node IPC
ocaml-language-server --socket={number}   # communicate over a unix socket
ocaml-language-server --stdio             # communicate over stdio

Contributing

Contributions are welcome and encouraged. Please see the following documents:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].