# \[ANN\] Release of ocaml-eglot 1.2.0

**URL:** <https://discuss.ocaml.org/t/ann-release-of-ocaml-eglot-1-2-0/16515>\
**Category:** Ecosystem\
**Tags:** merlin, editor, ocaml-lsp-server, emacs, announce\
**Created:** [April 16, 2025, 4:49pm UTC](https://discuss.ocaml.org/t/ann-release-of-ocaml-eglot-1-2-0/16515 "2025-04-16T16:49:51Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![xvw](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/xvw/32/2041_2.png) [@xvw](https://discuss.ocaml.org/u/xvw)\
**Post date:** [April 16, 2025, 4:49pm UTC](https://discuss.ocaml.org/t/ann-release-of-ocaml-eglot-1-2-0/16515/1 "2025-04-16T16:49:51Z")

</div>

We (at [Tarides](https://tarides.com/)) are _particularly pleased_ to announce the release of [OCaml-eglot](https://github.com/tarides/ocaml-eglot) `1.2.0`, An overlay on [Eglot](https://www.gnu.org/software/emacs/manual/html_node/eglot/) (the _built-in_ [LSP](https://microsoft.github.io/language-server-protocol/) client for Emacs) for editing OCaml!

> `ocaml-eglot` is an **alternative mode** to [`merlin`](https://ocaml.github.io/merlin/) which uses [`ocaml-lsp-server`](https://github.com/ocaml/ocaml-lsp) (instead of `ocamlmerlin`) as the language server. So yes, if you decide to use`ocaml-eglot`, `merlin` **is no longer needed**. (Merlin is still used as a library, in `ocaml-lsp-server`).

- [Release note](https://github.com/tarides/ocaml-eglot/releases/tag/1.2.0)
- [Github repository](https://github.com/tarides/ocaml-eglot)
- [Package on MELPA](https://melpa.org/#/ocaml-eglot)
- [Features list](https://github.com/tarides/ocaml-eglot?tab=readme-ov-file#features)
- [Installation procedure](https://github.com/tarides/ocaml-eglot?tab=readme-ov-file#installation)
- [Comparison table with Merlin](https://github.com/tarides/ocaml-eglot?tab=readme-ov-file#comparison-of-merlin-and-ocaml-eglot-commands)

This version discreetly improves the ergonomics of certain orders, gives more control over customer-side order support and drastically improves error handling! Here’s the full changelog and, in the meantime, I’m adding the changelog for version `1.1.0`, which hadn’t been announced:

## `1.2.0`

- Fix Type-enclosing’s buffer update when using `caml-mode` ([#48](https://github.com/tarides/ocaml-eglot/pull/48))
- Add `ocaml-eglot-search-definition`, `ocaml-eglot-search-declaration` and alternative functions ([#45](https://github.com/tarides/ocaml-eglot/pull/45))
- Fix some warnings on byte-compilation ([#40](https://github.com/tarides/ocaml-eglot/pull/40))
- Fix error on on `ocaml-eglot-construct` ([#42](https://github.com/tarides/ocaml-eglot/pull/40))
- `ocaml-eglot-alternate-file` now visits file in other window when prefix argument is set ([#51](https://github.com/tarides/ocaml-eglot/pull/51))
- Add error-handling for jsonrpc-request ([#52](https://github.com/tarides/ocaml-eglot/pull/52))
- Maintain more diagnostics for location failure ([#52](https://github.com/tarides/ocaml-eglot/pull/52))
- Fix hole cycle navigation ([#53](https://github.com/tarides/ocaml-eglot/pull/53))
- Relay on custom request (if it is available) for managing holes ([#53](https://github.com/tarides/ocaml-eglot/pull/53))
- Implementation of support for experimental client commands (and implementation of `ocaml.next-hole` in the presence of the `ocaml-eglot-destruct` action) ([#54](https://github.com/tarides/ocaml-eglot/pull/54))

## `1.1.0`

- A first support for `flycheck` ([#29](https://github.com/tarides/ocaml-eglot/pull/29), [#33](https://github.com/tarides/ocaml-eglot/pull/33) and [#37](https://github.com/tarides/ocaml-eglot/pull/37))
- Use a more efficient way to ensure that a vector is empty ([#27](https://github.com/tarides/ocaml-eglot/pull/27))
- Made the mode-line “lighter” more conventional ([#26](https://github.com/tarides/ocaml-eglot/pull/26))

## Spotlight on new features

Two easily observable features:

### Finding an identifier

- `ocaml-eglot-find-identifier-declaration`
- `ocaml-eglot-find-identifier-definition`

the two commands behave like their analogues (`ocaml-eglot-find-definition` and `ocaml-eglot-find-declaration`) but allow the user to enter the identifier directly:

![eglot-search-ident-def-decl](https://us1.discourse-cdn.com/flex020/uploads/ocaml/original/2X/5/5835742f3fadaf6054faf15e02c02c842a757e5a.gif)

### Searching for a definition or a declaration

- `ocaml-eglot-search-declaration`
- `ocaml-eglot-search-definition`

Allows you to search by type or polarity to find the definition (implementation) or declaration (signature) of values!

![eglot-search-def-decl](https://us1.discourse-cdn.com/flex020/uploads/ocaml/original/2X/f/f48b3cb62a6eb6b81aa141e471e40e6f7641e0ae.gif)

## Upgrading

The release is available on MELPA, so you can update it using the usual process. As always, your feedback is invaluable!

_Happy hacking_

---

_[View the full topic](https://discuss.ocaml.org/t/ann-release-of-ocaml-eglot-1-2-0/16515)._
