merlin
Context sensitive completion for OCaml in Vim and Emacs (by ocaml)
rust-prolog
Rust implementation of prolog based on miniprolog: http://andrej.com/plzoo/html/miniprolog.html (by dagit)
Our great sponsors
merlin | rust-prolog | |
---|---|---|
12 | 2 | |
1,541 | 79 | |
0.9% | - | |
8.9 | 0.0 | |
21 days ago | over 3 years ago | |
OCaml | Rust | |
MIT License | BSD 3-clause "New" or "Revised" License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
merlin
Posts with mentions or reviews of merlin.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-05-07.
- Merlin: Context sensitive completion for OCaml in Vim and Emacs
-
Hacker News top posts: May 7, 2022
Merlin: Context sensitive completion for OCaml in Vim and Emacs\ (0 comments)
-
Hoogle for Rust?
Instead of searching functions based on their type structure (like Hoogle), you could search for functions that "consume"/"produce" values of given types (like OCaml's Merlin). I think Rust already computes variance of type constructors, so such a tool just would have to obtain this information.
-
Dot completion
Assuming you followed the instructions you got when you installed merlin (shows up as part of opam's output), you either need a manually created .merlin file to tell it where to find things, or a dune file that lists dependencies with which merlin can auto-create its own. Preferably the latter: use dune and let merlin do the rest.
However, after posting this question I stumbled upon this Github issue where they say it isn't supposed to work out of the box and you're supposed to bind a key to it by editing your .emacs file. Turns out the default .emacs file binds auto-complete to "backtab" which means Shift+Tab but that didn't work. I did eventually discover that I can get some kind of completion by binding backtab to completion-at-point like this:
-
Advice/best practice/arhitecture pattern for building language with LSP in mind?
Self-advertising: I partcipated to the writing of Merlin: A Language Server for OCaml (Experience Report), which explains the overall design of Merlin, a language server for OCaml. A key idea of Merlin are that classic lexing-parsing-typing pipelines can easily be adapted to be incremental for a Language Server, especially when they are using immutable data structures.
-
Language Server built into the compiler ?
Self-advertisment: we wrote a paper on how the Merlin tool does this for the OCaml programming language, obtaining good incrementality thanks to well-chosen (and not so large) changes to the existing batch-compiler implementation.
rust-prolog
Posts with mentions or reviews of rust-prolog.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-12-01.
-
How does Rust code written by a Haskell dev look like?
This is probably my oldest Rust code base (and some things about the design are mistakes but I don't feel like rewriting it). It's based on some ML (maybe ocaml?) code but then I kept extending it and adding features: https://github.com/dagit/rust-prolog
-
Hoogle for Rust?
I wrote it myself: https://github.com/dagit/rust-prolog
What are some alternatives?
When comparing merlin and rust-prolog you can also consider the following projects:
hoogle - Haskell API search engine
ocamlformat - Auto-formatter for OCaml code
Mosh - Mobile Shell
ocaml-lsp - OCaml Language Server Protocol implementation
TatSu - 竜 TatSu generates Python parsers from grammars in a variation of EBNF
bisect_ppx - Code coverage for OCaml and ReScript
rust-monads - Just a playground for me to try out different monad related things in Rust
salsa - A generic framework for on-demand, incrementalized computation. Inspired by adapton, glimmer, and rustc's query system.
ocaml-decimal - Arbitrary-precision floating-point decimals
rust - Empowering everyone to build reliable and efficient software.
ferrite - Session Type EDSL for Rust