sanel / monroe

Clojure nREPL client for Emacs
161 stars 21 forks source link

Query: interest in completion support? #9

Closed technomancy closed 8 years ago

technomancy commented 8 years ago

I know in the readme it says that this project is specifically not about "funny windows or buffers with errors, messages and other distractions", but I am wondering if this includes support for completion using Emacs's built-in completion-at-point function. I've just implemented this in another mode, and without the server-side bits it came in at under 20 lines. But of course if that's not part of your vision for this project then that's understandable too.

technomancy commented 8 years ago

I just realized that a default nREPL server has no support for any completion op, so I would understand if you aren't interested in this. It's probably pretty easy to hack on from the outside anyway.

sanel commented 8 years ago

Hey @technomancy, you are correct: monroe is striving to be minimal, inferior-lisp-like mode for nREPL. What kind of completion do you have on mind?

I just realized that a default nREPL server has no support for any completion op

Yes. This would require some custom clj/cljs code to be sent from monroe.

I often use not-well-known complete-tag with e|c|gtags and CTRL-L does a job in REPL buffer, but I presume you are targeting different approach.

technomancy commented 8 years ago

I'm actually thinking of using this with my own nREPL server that I've written for Lua: https://gitlab.com/technomancy/jeejah

But looking at it more closely, the logic for completion would have to be language-specific, because Clojure needs only (symbol-at-point) while Lua needs the entire expression at point; and (thing-at-point 'sexp) doesn't return the right value for nested table references, so it needs some custom logic.

So given that this won't be pretty for Clojure and won't work seamlessly for Lua, I'd feel happy just closing it out. Thanks anyway!