Skip to content

Commit

Permalink
Add README (ocaml#9)
Browse files Browse the repository at this point in the history
Add README
  • Loading branch information
rgrinberg authored Dec 13, 2019
2 parents 736e58e + 3c31474 commit 6a94b58
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# OCaml-LSP

This project contains an implementation of an LSP server for OCaml and a
standalone implementation of the LSP protocol.

## Installation

We recommend to install the server via a project such as
[opam](http://github.com/ocaml/opam) or [esy](https://github.com/esy/esy).

### Opam

To install the lsp server in a particular opam switch:

```
$ opam install ocaml-lsp-server
```

Note that you will need to run install the lsp server in every switch where
you'd like to use it.

### Source

This project uses submodules to handle dependencies. This is done so that users
who install ocaml-lsp-server into their sandbox will not share constraints on
the same dependencies that ocaml-lsp-server is using.

```
$ git clone --recurse-submodules http://github.com/ocaml/ocaml-lsp.git
$ cd ocaml-lsp
$ dune build
```

## Tests

## Relationship to Other Tools

The lsp server uses merlin under the hood, but users are not required to have
merlin installed. We vendor merlin because we currently heavily depend on some
implementation details of merlin that make infeasible to upgrade the lsp server
and merlin independently.

## History

The implementation of the lsp protocol itself was taken from [facebook's
hack](https://github.com/facebook/hhvm/blob/master/hphp/hack/src/utils/lsp/lsp.mli)

Previously, this lsp server was a part of merlin, until it was realized that the
lsp protocol covers a wider scope than merlin.

0 comments on commit 6a94b58

Please sign in to comment.