Fork me on GitHub
#announcements
<
2023-11-04
>
oyakushev13:11:39

compliment-lite is a trimmed-down single-file version of Compliment, Clojure's most gallant completion library. If you need to implement code completion in your project and, for any reason, don't want to add a dependency on Compliment, consider picking compliment-lite. It supports most completions that Compliment provides: vars, namespaces, classes, static and non-static class members, keywords. See https://github.com/alexander-yakushev/compliment/tree/master/lite.

šŸ™ 2
šŸŽ‰ 10
1
šŸ”„ 1
Mattias16:11:05

Forgive a really, really naive question for the curious newbies - I see Compliment is written in Clojure. How do Emacs, VSCode and the rest execute it? How would my hypothetical new doubleplusgood editor use it? šŸ˜¬šŸ™‚

oyakushev16:11:57

It is a valid question! Emacs Clojure IDE called CIDER has a "frontend" part, written in Emacs Lisp, which lives in the editor, and the "backend" part, called cider-nrepl, written in Clojure. The backend part is injected into the application you are currently working on and have a REPL of it running. In case of VSCode, I think it also uses cider-nrepl as the IDE backend. This is the similar concept to LSP; however, LSP implementations usually run in a separate process, whereas Clojure IDE backends such as cider-nrepl run within the same process as the application being developed.

oyakushev16:11:08

So, if you were to develop an editor and wanted it to support Clojure, your best bet would be to take cider-nrepl and then write editor code that interacts with it to provide the various functionality expected from an IDE. Or, you could create an IDE backend from scratch.

Mattias18:11:26

Ok, very cool, thanks for explaining. Iā€™m trying to understand all of it better. šŸ˜„