# Any editor plugins/modes equivalent to Gopcaml-mode, structural navigation for OCaml?

**URL:** <https://discuss.ocaml.org/t/any-editor-plugins-modes-equivalent-to-gopcaml-mode-structural-navigation-for-ocaml/16094>\
**Category:** Ecosystem\
**Tags:** editor, emacs\
**Created:** [February 6, 2025, 8:16pm UTC](https://discuss.ocaml.org/t/any-editor-plugins-modes-equivalent-to-gopcaml-mode-structural-navigation-for-ocaml/16094 "2025-02-06T20:16:32Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gopiandcode](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/gopiandcode/32/5346_2.png) [@Gopiandcode](https://discuss.ocaml.org/u/Gopiandcode)\
**Post date:** [February 6, 2025, 8:16pm UTC](https://discuss.ocaml.org/t/any-editor-plugins-modes-equivalent-to-gopcaml-mode-structural-navigation-for-ocaml/16094/1 "2025-02-06T20:16:32Z")

</div>

Hihi~ after a very long hiatus from any OCaml programming, I’m slowly getting back into things, anyway uuh, I might be a little bit biased, but I’ve been missing the keybindings and navigation support of gopcaml-mode haha since using OCaml 5.0 and been tempted to like upgrade it to the latest version.

As I’ve been out of the ecosystem for a while I was wondering if there was any like established tree-sitter based navigation plugin that people had built for OCaml in the meantime? I’m more than happy to update gopcaml mode, I’m guessing I’m probably the only user lol, but if there is some effort ongoing, I’d be happy to contribute

---

<div class="post-metadata">

**Author:** ![lambda\_foo](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/lambda_foo/32/275_2.png) [@lambda\_foo](https://discuss.ocaml.org/u/lambda_foo)\
**Post date:** [February 10, 2025, 10:24pm UTC](https://discuss.ocaml.org/t/any-editor-plugins-modes-equivalent-to-gopcaml-mode-structural-navigation-for-ocaml/16094/2 "2025-02-10T22:24:15Z")

</div>

This package looks promising since it uses treesitter and supports multiple languages.

> **[Combobulate: Structured Movement and Editing with Tree-Sitter](https://www.masteringemacs.org/article/combobulate-structured-movement-editing-treesitter)**
>
> Combobulate is a package that adds advanced structured editing and movement to many programming modes in Emacs. Here's how it works, and how it can enrich your editing experience in Emacs.

---

<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:** [February 11, 2025, 5:38am UTC](https://discuss.ocaml.org/t/any-editor-plugins-modes-equivalent-to-gopcaml-mode-structural-navigation-for-ocaml/16094/3 "2025-02-11T05:38:20Z")

</div>

> [@Gopiandcode](#):
>
> As I’ve been out of the ecosystem for a while I was wondering if there was any like established tree-sitter based navigation plugin that people had built for OCaml in the meantime? I’m more than happy to update gopcaml mode, I’m guessing I’m probably the only user lol, but if there is some effort ongoing, I’d be happy to contribute

It’s a subject that’s on the minds of the current Merlin (and OCaml-LSP) maintainers, persistently. We’d be delighted to discuss it with you!

---

<div class="post-metadata">

**Author:** ![nobrowser](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/nobrowser/32/2099_2.png) [@nobrowser](https://discuss.ocaml.org/u/nobrowser)\
**Post date:** [February 11, 2025, 6:23am UTC](https://discuss.ocaml.org/t/any-editor-plugins-modes-equivalent-to-gopcaml-mode-structural-navigation-for-ocaml/16094/4 "2025-02-11T06:23:47Z")

</div>

I know nothing about gopcaml-mode. Can you give an URL ?

---

<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:** [February 11, 2025, 7:26am UTC](https://discuss.ocaml.org/t/any-editor-plugins-modes-equivalent-to-gopcaml-mode-structural-navigation-for-ocaml/16094/5 "2025-02-11T07:26:13Z")

</div>

> Ultimate Ocaml editing plugin, providing advanced structural editing, movement and analysis in Emacs.

> **[Kiran Gopinathan / gopcaml-mode · GitLab](https://gitlab.com/gopiandcode/gopcaml-mode)**
>
> Ultimate Ocaml editing plugin, providing advanced structural editing, movement and analysis in Emacs.

You can also watch [this excellent presentation](https://watch.ocaml.org/w/tJYEtbT4VA9ZnVcNZETHow) about it!

---

<div class="post-metadata">

**Author:** ![Gopiandcode](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/gopiandcode/32/5346_2.png) [@Gopiandcode](https://discuss.ocaml.org/u/Gopiandcode)\
**Post date:** [February 11, 2025, 2:54pm UTC](https://discuss.ocaml.org/t/any-editor-plugins-modes-equivalent-to-gopcaml-mode-structural-navigation-for-ocaml/16094/6 "2025-02-11T14:54:53Z")

</div>

oh yep, I’d be happy to discuss! I received an email from Gabriel a while back asking about something to do with structural editing, but at the time I was still going through burnout and wasn’t able to join in, but yeah, now I’m getting back into things, and would be happy to hack some structural editing support into OCaml/LSP/Merlin!

---

<div class="post-metadata">

**Author:** ![lambda\_foo](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/lambda_foo/32/275_2.png) [@lambda\_foo](https://discuss.ocaml.org/u/lambda_foo)\
**Post date:** [February 11, 2025, 8:58pm UTC](https://discuss.ocaml.org/t/any-editor-plugins-modes-equivalent-to-gopcaml-mode-structural-navigation-for-ocaml/16094/7 "2025-02-11T20:58:54Z")

</div>

It would be great if that navigation would integrate well with other languages in some common way like Combobulate or LSP. Being able to switch between OCaml and C/Rust/Haskell etc is so useful.

The structural editing and navigation bindings from Elisp/Common Lisp are comprehensive. [Structural editing in vanilla Emacs](https://dawranliou.com/blog/structural-editing-in-vanilla-emacs/) gives a brief summary of the keybindings.
