Merlin 4.5

See full changelog
  • merlin binary
    • don't reset the environment when running merlin in single mode so that the parent environment is forwarded the the child processes (#1425)
    • filter dups in source paths (#1218)
    • improve load path performance (#1323)
    • fix handlink of ppx's under Windows (#1413)
    • locate: look for original source files before looking for preprocessed files (#1219 by @ddickstein, fixes #894)
    • handle = syntax in compiler flags (#1409)
    • expose all destruct exceptions in the api (#1437)
    • fix superfluous break in error reporting (#1432)
    • recognise binding operators in locate and occurrences (#1398, @mattiase)
    • remove dependency on Result (#1441, @kit-ty-kate)
    • use the new "shapes" generated by the compiler to perform precise jump-to-definition (#1431)
  • editor modes
    • fix an issue in Neovim where the current line jumps to the top of the window on repeated calls to MerlinTypeOf (#1433 by @ddickstein, fixes #1221)
    • add module, module type, and class imenu items for emacs (#1244, @ivg)
    • add prefix argument to force or prevent opening in a new buffer in locate command (#1426, @panglesd)
    • add type-on-hover functionality for vim (#1439, @nilsbecker)
    • add a dedicated buffer *merlin-errors* containing the last viewed error (#1414, @panglesd)
  • test suite
    • make merlin-wrapper create a default .merlin file only when there is no dune-project to let tests use dune ocaml-merlin reader. (#1425)
    • cover locate calls on module aliases with and without dune
    • Add a test expliciting the interaction between locate and Dune's generated source files (#1444)