# What happened to https://github.com/freebroccolo/ocaml-language-server?

**URL:** <https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673>\
**Category:** Ecosystem\
**Tags:** vscode\
**Created:** [November 11, 2019, 9:44pm UTC](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673 "2019-11-11T21:44:06Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![hongchangwu](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/hongchangwu/32/1146_2.png) [@hongchangwu](https://discuss.ocaml.org/u/hongchangwu)\
**Post date:** [November 11, 2019, 9:44pm UTC](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673/1 "2019-11-11T21:44:07Z")

</div>

It looks like the owner deleted his account?

BTW this is the OCaml Language Server used by this [VS Code extension](https://marketplace.visualstudio.com/items?itemName=freebroccolo.reasonml). I know there is a [newer language server and extension](https://github.com/jaredly/reason-language-server) written in pure Reason and a merlin-based LSP is also WIP, but AFAIK there are still quite some people (mostly plain OCaml users) using the old extension. There have also been some recent enhancements (like integration with `ocamlformat`) that I want to try out.

---

<div class="post-metadata">

**Author:** ![yawaramin](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/yawaramin/32/3384_2.png) [@yawaramin](https://discuss.ocaml.org/u/yawaramin)\
**Post date:** [November 12, 2019, 12:12am UTC](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673/2 "2019-11-12T00:12:08Z")

</div>

That’s … concerning. I hope Darin is all right.

The repo redirects to a fork: [https://github.com/reasonml-editor/vscode-reasonml](https://github.com/reasonml-editor/vscode-reasonml)

---

<div class="post-metadata">

**Author:** ![pitkali](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/pitkali/32/1688_2.png) [@pitkali](https://discuss.ocaml.org/u/pitkali)\
**Post date:** [November 12, 2019, 2:20pm UTC](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673/3 "2019-11-12T14:20:34Z")

</div>

But then there’s this: [https://github.com/reasonml-editor/vscode-reasonml/commit/8745b53c046e8bf857fa258ad1cb545fba81beaa](https://github.com/reasonml-editor/vscode-reasonml/commit/8745b53c046e8bf857fa258ad1cb545fba81beaa), so it seems that this one is abandoned as well.

His Twitter account seems to be gone as well.

---

<div class="post-metadata">

**Author:** ![XVilka](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/xvilka/32/5334_2.png) [@XVilka](https://discuss.ocaml.org/u/XVilka)\
**Post date:** [November 13, 2019, 2:41am UTC](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673/4 "2019-11-13T02:41:01Z")

</div>

Would be nice to have a proper OCaml LSP, not the dialect-based one. Bad news ☹

---

<div class="post-metadata">

**Author:** ![yawaramin](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/yawaramin/32/3384_2.png) [@yawaramin](https://discuss.ocaml.org/u/yawaramin)\
**Post date:** [November 13, 2019, 3:10am UTC](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673/5 "2019-11-13T03:10:44Z")

</div>

Reason-vscode supports standard OCaml syntax as well. I’m sure contributions are welcome to help with bugs/features/etc.

---

<div class="post-metadata">

**Author:** ![XVilka](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/xvilka/32/5334_2.png) [@XVilka](https://discuss.ocaml.org/u/XVilka)\
**Post date:** [November 13, 2019, 4:10am UTC](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673/6 "2019-11-13T04:10:22Z")

</div>

Yes, but it is not written in OCaml itself, which makes the infrastructure “insustainable”.

---

<div class="post-metadata">

**Author:** ![rgrinberg](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/rgrinberg/32/40_2.png) [@rgrinberg](https://discuss.ocaml.org/u/rgrinberg)\
**Post date:** [November 13, 2019, 6:54am UTC](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673/7 "2019-11-13T06:54:29Z")

</div>

There’s an LSP server that’s builtin with merlin. It’s not yet released, but I would certainly recommend over anything else at the moment. With time, it will surely become the standard.

---

<div class="post-metadata">

**Author:** ![XVilka](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/xvilka/32/5334_2.png) [@XVilka](https://discuss.ocaml.org/u/XVilka)\
**Post date:** [November 13, 2019, 7:10am UTC](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673/8 "2019-11-13T07:10:42Z")

</div>

It [doesn’t support OCaml 4.09 yet](https://github.com/ocaml/merlin/pull/1055) though.

---

<div class="post-metadata">

**Author:** ![Kakadu](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/kakadu/32/1204_2.png) [@Kakadu](https://discuss.ocaml.org/u/Kakadu)\
**Post date:** [November 13, 2019, 11:59am UTC](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673/9 "2019-11-13T11:59:39Z")

</div>

And I can’t mention that merlin-lsp 4.08 seems to be very buggy (hover over variable detects it’s location wrong and doesn’t work as expected. Test in VSCode but I’m sure that it is a problem of backend).

---

<div class="post-metadata">

**Author:** ![hongchangwu](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/hongchangwu/32/1146_2.png) [@hongchangwu](https://discuss.ocaml.org/u/hongchangwu)\
**Post date:** [November 13, 2019, 2:30pm UTC](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673/10 "2019-11-13T14:30:43Z")

</div>

Both the language server and the extension have been officially unmaintained for a while now, but there has still been some community-driven enhancements.

---

<div class="post-metadata">

**Author:** ![hongchangwu](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/hongchangwu/32/1146_2.png) [@hongchangwu](https://discuss.ocaml.org/u/hongchangwu)\
**Post date:** [November 13, 2019, 2:33pm UTC](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673/11 "2019-11-13T14:33:51Z")

</div>

I have tried `merlin-lsp`. It has some rough edges, but works for the most part. The biggest drawback is that it requires a custom build of `merlin`, so I cannot really recommend it to casual OCaml users (yet).

---

<div class="post-metadata">

**Author:** ![yawaramin](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/yawaramin/32/3384_2.png) [@yawaramin](https://discuss.ocaml.org/u/yawaramin)\
**Post date:** [November 13, 2019, 2:59pm UTC](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673/12 "2019-11-13T14:59:44Z")

</div>

Yes, it is written in OCaml (Reason syntax): [https://github.com/jaredly/reason-language-server](https://github.com/jaredly/reason-language-server) .

---

<div class="post-metadata">

**Author:** ![andreypopp](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/andreypopp/32/97_2.png) [@andreypopp](https://discuss.ocaml.org/u/andreypopp)\
**Post date:** [November 13, 2019, 4:18pm UTC](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673/13 "2019-11-13T16:18:15Z")

</div>

Please open issues about rough edges you’ve encountered!

Btw. the setup is as simple as adding:

```auto
"devDependencies": {"@opam/merlin-lsp": "ocaml/merlin:merlin-lsp.opam"}

```

to `esy.json` (or `package.json`). Or using `opam pin`.

---

<div class="post-metadata">

**Author:** ![andreypopp](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/andreypopp/32/97_2.png) [@andreypopp](https://discuss.ocaml.org/u/andreypopp)\
**Post date:** [November 13, 2019, 4:19pm UTC](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673/14 "2019-11-13T16:19:36Z")

</div>

Can you open an issue with (the repro preferably) about this? Does merlin (w/o LSP frontend) behave the same in this exact situation?

---

<div class="post-metadata">

**Author:** ![hongchangwu](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/hongchangwu/32/1146_2.png) [@hongchangwu](https://discuss.ocaml.org/u/hongchangwu)\
**Post date:** [November 13, 2019, 4:26pm UTC](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673/15 "2019-11-13T16:26:07Z")

</div>

Thanks, good to know. BTW is there any concern about publishing the current version to opam? I think it will make adoption much easier.

---

<div class="post-metadata">

**Author:** ![andreypopp](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/andreypopp/32/97_2.png) [@andreypopp](https://discuss.ocaml.org/u/andreypopp)\
**Post date:** [November 13, 2019, 4:35pm UTC](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673/16 "2019-11-13T16:35:07Z")

</div>

I was thinking we could polish it more and also build a VsCode extension first. Though it’s in a pretty usable form already (in my experience).

---

<div class="post-metadata">

**Author:** ![vrotaru](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/vrotaru/32/39_2.png) [@vrotaru](https://discuss.ocaml.org/u/vrotaru)\
**Post date:** [November 13, 2019, 9:07pm UTC](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673/17 "2019-11-13T21:07:29Z")

</div>

Just in case there is a [ocaml-language-server](https://github.com/confusedguy9/ocaml-language-server.git) fork, I guess. There are basically no info about that project, so it also may go away at any time.

---

<div class="post-metadata">

**Author:** ![yawaramin](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/yawaramin/32/3384_2.png) [@yawaramin](https://discuss.ocaml.org/u/yawaramin)\
**Post date:** [November 15, 2019, 7:11pm UTC](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673/19 "2019-11-15T19:11:44Z")

</div>

Thank you. Terrible news but hopefully he is getting better.

---

<div class="post-metadata">

**Author:** ![freebroccolo](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/freebroccolo/32/18_2.png) [@freebroccolo](https://discuss.ocaml.org/u/freebroccolo)\
**Post date:** [November 20, 2019, 3:04am UTC](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673/20 "2019-11-20T03:04:32Z")

</div>

I have uploaded a fork of the old language server at [https://github.com/ocaml-lsp/ocaml-language-server](https://github.com/ocaml-lsp/ocaml-language-server).

If people are still actively using that server and would like to see it maintained I am willing to continue working on it as long as I have time and resources to do so.

At the moment I could really use some help from the community with project maintenance.

I haven’t been a very active OCaml/Reason user lately so I don’t really know the best place to post about this, but if anyone would be interested in helping with issue triage and CI and merging PRs and stuff like that, please let me know and I will be happy to add you.

---

<div class="post-metadata">

**Author:** ![XVilka](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/xvilka/32/5334_2.png) [@XVilka](https://discuss.ocaml.org/u/XVilka)\
**Post date:** [November 20, 2019, 4:38am UTC](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673/21 "2019-11-20T04:38:11Z")

</div>

This is might be exactly a good project for [ocaml-community](https://github.com/ocaml-community) organization.

[Next page](https://discuss.ocaml.org/t/what-happened-to-https-github-com-freebroccolo-ocaml-language-server/4673.md?page=2)
