Skip to content

Internal tweaks and virtual text clearing improvements

Compare
Choose a tag to compare
@Olical Olical released this 01 Oct 11:47
· 1411 commits to master since this release
f8f178c

Hello! I hope you're having a good week!

I've been using develop for a while at work and I'm happy with the behaviour so I thought I'd cut a release ahead of my work on more testing and "hooks" which should allow everyone to "hook" into things like REBL to display evaluation results via some simple configuration!

  • @daveyarwood improved the wording of the message you see if Conjure exits with an unexpected error code.
  • I've removed medley as a dependency of Conjure's internal JVM, this might help startup time a tiny tiny bit, I only needed the deep-merge function from there anyway.
  • The Deoplete integration should handle restarts of Conjure's JVM now, which shouldn't happen unless things are exploding anyway, so hopefully you won't notice this one.
  • Internal refactoring so that I can re-eval Conjure's internal RPC handling functions without restarting the whole thing.
  • More refactoring so that the code to generate code to look up definitions for "go to definition" is implemented in terms of templated Clojure data, rather than string templates. This means there are no more string templates in conjure.code 😄
  • Changed virtual text so the clearing is more aggressive, the commit explains it a little.
commit 85d6d83deb94cc580df2f1979043244fdef2638a
Author: Oliver Caldwell <[email protected]>
Date:   Sun Sep 22 16:02:06 2019 +0100

    Make virtual text clearing more aggressive
    
    So if you're not using any of the quick_doc tools it should still stay
    clean. As long as you move your cursor around it should clear off that
    pesky hanging virtual text.
    
    This opens up more possibilities into virtual text information such as
    progress of dependency injection.

 plugin/conjure.vim | 30 ++++++++++++++++--------------
 1 file changed, 16 insertions(+), 14 deletions(-)
  • Capped hunting for a namespace name in a buffer, this should prevent massive buffers from causing the cursor to lag slightly (I mean 5k+ lines). There's still work to be done here to make the log buffer work a lot better when it's huge.
  • Skip host+port combinations we're already connected to. So if you have some global config to connect to localhost:5555 and some project local config for the same, you won't get two connections. This prevents your evaluations from happening twice, the first connection will win.

With that last change, I was hitting the edge case at work where I had two configurations looking for a .prepl-port file, both were finding the same file and connecting to the same port. I think this behaviour is undesired, so I removed it. Hopefully it's the right call.

Next up on my to do list is a bunch more unit and integration testing to give us some robustness in the face of changes and work on "hooks". The next update will probably be slightly breaking for those of you using the tools namespace refresh configuration, but it's for the best, I promise.

Have a great rest of your day and week!

image