LightTable / autocompleter

Proof of concept - New pluggable autocompleter plugin for Light Table
1 stars 2 forks source link

Feedback #1

Open cldwalker opened 8 years ago

cldwalker commented 8 years ago

Hi @rundis. This is great work so far! I'm happy we're moving in a direction that reuses the showHints addon. I haven't had a chance to read most of the code or all of the readme but some initial feedback:

I'll add more comments once I get around to reading and using the code more. Thanks for leading this effort!

rundis commented 8 years ago

Tx @cldwalker

  1. I'm using the latest and greatest showHints addon, but maybe a CodeMirror update helps with the flickering. There's a lot of debounce/requestAnimationFrame kind of logic in showHint that I haven't wrapped my head around
  2. It might be that I'm just slow, and it's a while since last I tried to debug how it works (debug async... not easy). I think it's especially the token input param got me baffled. I'm sure there were a few other things too, but I can dig deeper into memory lane to substantiate later if need be. If we decide to think new, It seems a little bit wasted, but perhaps it will bring valuable insights.
  3. I'm with you on the concerns about core.async. It's quite neat, especially the timeout solution. But maybe we should follow suit with Atom and use promises. Maybe there is an simple solution alternative waiting to be discovered (, but a collection of callbacks isn't one of them). I guess my mindset is a bit at odds with the BOT when it comes to the liberal use of objects and state. I must admit I'm skewed by working with Elm and ClojureScript/React and unidirectional data flows. If we find a nice fairly easy to reason about solution using the BOT for what it's worth, I'm not going to insist on core.async or promises.
  4. Yeah. It's about whether to enforce one true token definition per editor(.tag) or allow different providers to have a difference of opinion on what constitutes a token.

I'm not too worried about enforcing one version of core-async for plugins, but if it messes with peoples clojure/clojurescript projects then it's a big no go. Adding dependencies much be done with great care, that's for sure :-)

I'll admit my views are coloured by the investment already, so a new pair of eyes and new ideas can only be beneficial !