the-lambda-church/merlin — pull request #322 by art-w (2014-12-07 18:34:45+00:00)
Title: Vim

Various suggestions to enhance the vim plugin:
- Text objects to navigate the ocaml AST: in visual mode, use `m` to select the nearest node. Pressing `m` again enlarges the selection and `M` reduces it (similarly to `:Grow` and `:Shrink`). On their first instantiation, `M` selects the same node as `:TypeOf`, while `m` tries to select something larger than a leaf. The variants `im`, `am`, `iM` and `aM` allow a finer selection: `i` removes any parenthesis/spaces to minimize the selection, while `a` expand it as much as possible. Also work in operator-pending mode (after `c`, `d`, `y`, ...), and with a count (`vmmm` is `v3m`).
- Go to definition (`:Locate`) bound to `gd`
- Integrate `:Occurences` as a vim search, via `*` and its reverse `#`, repeatable with `n`/`N` just like `*` and `#` in vim.
- Interactive rename through `r` to make renaming slightly more convenient. (and `R` to rename-append)

See https://github.com/the-lambda-church/merlin/issues/313 :
- A type history buffer: toggle it with `qt`, with a configurable default height, and automatically opens when Merlin prints very large types (where large is also configurable.) It tries to stay out of the way by auto-resizing and auto-closing itself when it was not explicitly requested by the user.
- The ability to yank the latest computed type via `yt`
- Syntax highlighting of types in the statusbar