Split Merlin in two (three) packages#1457
Conversation
|
(tests should fail. I want to check that the CI catch it) Thanks a lot @kit-ty-kate for helping me sort out all this! |
|
I removed the dependency on yojson but it came with a cost: the logger does pretty print json in some cases, so I had to add the pretty printing code from yojson to |
That seems silly to me. |
Indeed. Another alternative is to leave a global reference that contains a
In lsp, I would like to experiment with a different json encoding/decoding layer than yojson for efficiency. It's not something I need right away, but i do plan to drop yojson eventually. |
I tried that in 0b25a95. It is not the cleanest of the apis but it does feels a lot better than the previous solution. What do you think ? |
IMO it's preferable to copy-pasting or doing nothing. |
by making Json.pretty a reference that lib users must fill
7061753 to
a61acd3
Compare
(Setup-ocaml automatically pins the packages) Co-authored-by: Kate <kit.ty.kate@disroot.org>
CHANGES:
Thu Jun 30 14:51:42 CEST 2022
+ merlin binary
- make most library public and split merlin in two packages: the
`merlin-lib` package that exposes merlin's internals and the `merlin`
package with the frontend. (ocaml/merlin#1448, ocaml/merlin#1455, ocaml/merlin#1457, ocaml/merlin#1497, @rgrinberg,
@tmattio, @kit-ty-kate)
- Type printing: use best_module_path for paths from Mty_alias (ocaml/merlin#1470)
- Attempt at finding the 'real' capitalization of files on windows (ocaml/merlin#1462 by
@mlasson)
- Use newer `Seq`-based API of Yojson 2.0, avoiding the need for the
deprecated `Stream` module (ocaml/merlin#1475 by @Leonidas-from-XIV)
- unify parsing of `MERLIN_LOG` (ocaml/merlin#1480 by @ulugbekna)
- Fix type deduplication in `type-enclosing` results (ocaml/merlin#1483, fixes ocaml/merlin#1477)
- Only weakly reduce the shapes to speed up the new Merlin locate
implementation. (ocaml/merlin#1488)
- Ignore unknown configuration tags from dune configuration provider but not
from dot-merlin-reader (ocaml/merlin#1486)
- typing recovery: recover at the granularity of `core_type` (ocaml/merlin#1484)
+ editor modes
- add method imenu items for emacs (ocaml/merlin#1481, @mndrix)
- emacs: Make the prefix argument to `merlin-locate` optional, both for
consistency with Emacs convention and for backwards compatibility. (ocaml/merlin#1476,
@antalsz)
- emacs: fix duplicated prefix path in imenu entries (ocaml/merlin#1495, @bcc32)
Most of the libraries are now publicly avalaible in the
merlin-libpackage.This include the protocol:
query_commandsandquery_protocolwhich are useful to lib users.We might add
Query_jsontoo.The
merlinpackage contains the frontend.All version of the packages are synced, but maybe this is not mandatory for
do-merlin-reader?