merlin
ocaml-lsp
merlin | ocaml-lsp | |
---|---|---|
12 | 9 | |
1,543 | 715 | |
0.0% | 0.7% | |
8.8 | 7.7 | |
8 days ago | 10 days ago | |
OCaml | OCaml | |
MIT License | GNU General Public License v3.0 or later |
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
- 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
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.
- merlin: Context sensitive completion for OCaml in Vim and Emacs
ocaml-lsp
-
I Wrote an Activitypub Server in OCaml: Lessons Learnt, Weekends Lost
> There is no alternative to Django, for instance.
https://aantron.github.io/dream/, which is new and used by ocaml.org
> No serious IDE, except emacs
and vim, and visual studio, and whatever else supports the LSP protocol via https://github.com/ocaml/ocaml-lsp
> The standard library was so lacking that there is at least an alternative.
While janestreet does have an publish their own stdlib, I personally try to stick to the stdlib whenever possible. Not to knock janestreet. I'm glad they're around and have contributed a bunch.
But overall I agree with you. It's been my favorite language two write in for years now. You can't just reach for off-the-shelf libraries for every little thing. Although the ones that do exist tend to be written halfway decently.
-
Merlin: Context sensitive completion for OCaml in Vim and Emacs
Merlin is great, but it's vim plugin leaves a bit to be desired (in particular, it doesn't seem to use any of the modern async apis from vim 8+/neovim). Personally ocaml-lsp (which is still backed by Merlin on the backend) together with neovim's built-in lsp support has been far smoother for me
-
The New OCaml Website
Perhaps the README[1] is out of date, but it appears to note that textDocument/implementation is not done? That's a pretty big hole.
[1]: https://github.com/ocaml/ocaml-lsp/#features
- Neovim 0.7 Released
-
Toplevel in VSCode?
Short answer: yesWith https://marketplace.visualstudio.com/items?itemName=ocamllabs.ocaml-platformand https://github.com/ocaml/ocaml-lspand https://dune.readthedocs.io/en/stable/and utop
-
This week in KDE: Fixing a bunch of annoying bugs
This is the one I tried and seems well supported - https://github.com/ocaml/ocaml-lsp . I've only started very lightly playing around with ocaml. It seems to be working fine on vscode and seems to do as expected on nvim too, at least as far as I configured nvim for it.
-
opam install problem on Ubuntu 21.04
Typically I would recommend using https://github.com/ocaml/ocaml-lsp which is now the main OCaml language server, and VSCode with the OCaml Platform extension, a combo I know works well.
-
In the Interest of Building an SML Language Server
You might also look into ocaml-lsp for inspiration. Not everything will carry over to SML but it might help somtimes.
What are some alternatives?
hoogle - Haskell API search engine
neovimcraft - website that makes it easy to find neovim plugins
ocamlformat - Auto-formatter for OCaml code
nvim-completion - :zap: An async autocompletion framework for Neovim
Mosh - Mobile Shell
which-key.nvim - 💥 Create key bindings that stick. WhichKey is a lua plugin for Neovim 0.5 that displays a popup with possible keybindings of the command you started typing.
rust-prolog - Rust implementation of prolog based on miniprolog: http://andrej.com/plzoo/html/miniprolog.html
neovim - Vim-fork focused on extensibility and usability
TatSu - 竜 TatSu generates Python parsers from grammars in a variation of EBNF
doom-emacs - An Emacs framework for the stubborn martian hacker [Moved to: https://github.com/doomemacs/doomemacs]
bisect_ppx - Code coverage for OCaml and ReScript
python-lsp-server - Fork of the python-language-server project, maintained by the Spyder IDE team and the community