Skip to content

Releases: Olical/conjure

Virtual text improvements and various tweaks

12 Jul 10:01
0cbb94a
Compare
Choose a tag to compare

Another Conjure release, fresh from semi-sunny London!

  • Virtual text will be dismissed when it's not required, still more to do here but it's better.
  • You now get four kinds of virtual texts! https://imgur.com/a/lTabSwI
  • Swapped from Cheshire to Jsonista, it should be a little faster for autocompletion stuff. Probably not noticeable though.
  • Updated a few internal dependencies.
  • Fixed OSX support by removing usage of stat... I thought I did it last version but missed one.
  • Catch more uncaught errors in nicer ways, there's only a few times I see errors leak out now and they're not bad. I'm slowly fixing them! It's just where Neovim returns nil when I ask for the cursor position and I'm not sure why, I think it's a race condition thing in Neovim? I'll solve them all eventually.
  • Socket disconnects don't show errors now, they're nice and quiet.
  • Starting to add all the config for you to remap every mapping to whatever key you want, not done yet though.

I hope you enjoy this pupdate and you have a great weekend ahead of you.

Exception handling overhaul and OSX compile fix

05 Jul 13:20
40ae8ee
Compare
Choose a tag to compare
  • Fixed #40 by overhauling how exceptions and results from evaluations are handled in #47.
  • Fixed a bug with OSX where it wouldn't let you run bin/compile because I was using stat -c which Apple removed support for 🙃 I'm now using date -r ... +%s to get the modified time of files in seconds to work out if I have to compile or not.
  • Fixed ClojureScript prelude string building, oops.
  • conjure.result is no more! The world is a simpler place!

Basically everything got a lot more robust but ClojureScript support will be a little iffy around exceptions until my patch for ClojureScript is merged and release. I hope it works well for you! Doc lookup for things like spec keywords will now work too, yay!

This should not be a breaking change. Have a doggo for keeping up to date responsibly.

image

A bunch of smaller improvements

26 Jun 11:42
630bcd1
Compare
Choose a tag to compare

Everything seems stable and there's some nice tweaks in here so I thought I'd tag it as a release. The next one should hopefully include fully configurable mappings!

  • Don't init if Conjure isn't compiled, related to #44.
    • It'll now check for the compiled classes and dependencies for injection.
    • It won't go into a restart loop if something goes wrong
  • Reuse the ctx map throughout the code, makes some internal functions a little nicer.
  • Only evaluate the injected dependencies (just compliment at the moment) if they aren't loaded yet.
    • This may not be noticeable but for slower machines it should bring down the connection time ever so slightly.
    • As you upgrade Conjure, it'll inject the new injected deps if they're required.
    • You can run old and new versions of Conjure against the same JVM, they won't interfere with each other, even if your colleague doesn't want to upgrade yet.
  • The current version number is shown in the first line of the log.
  • Added a little badge to the README pointing to #conjure in Clojurians slack. Come say hi!

Well done for upgrading responsibly, have some doggos.

[BREAKING] Multiline result folding + many small improvents

17 Jun 20:02
14fbcaf
Compare
Choose a tag to compare
  • @justone added optional folding of multiline results!
  • Improved calculation of the current working directory of Neovim.
  • Don't load in non-Neovim or if already loaded.
  • Fixed CONJURE_LOG_PATH, it was relative to Conjure's source, not your nvim.
  • Tidy up the development workflow (see CONTRIBUTING), no longer require .localvimrc.
  • Cleaner exiting of the process, Neovim asks Conjure to exit politely rather than executing it on the spot.
  • Make the mappings silent, prevents some printing of "press enter to continue" on small screens.
  • Fix #slurp-edn and allow it to return nil if a file can't be read.
  • Allow nil :port values, mainly from #slurp-edn, the connections with a nil port are ignored.
  • Improve how the log buffer and window are upserted, fixed a subtle bug.
  • Add a mapping to eval the word under the cursor.
  • Add a mapping to toggle the log instead of just opening or closing it.

Breaking!

  • g:conjure_log_auto_open` is now a set of the kinds of log entries you wish to open the log. See the README for more, essentially you have to replace the 1 or 0 with an array of kinds of log entries you want to open the log for. For example:
let g:conjure_log_auto_open = ["out", "err", "tap", "doc", "test"]

[BREAKING] Declarative prepl connections and various fixes

10 Jun 11:58
571c566
Compare
Choose a tag to compare
  • Various fixes and protection against some nils coming back from Neovim
  • Added g:conjure_log_auto_open config
  • #15 (declarative prepl connections) is finished!
  1. Set up your .conjure.edn
  2. Open Neovim
  3. ???
  4. Profit!

Further documentation for this new style can be found in the README.

No input required! It'll connect to what's running at the time, if you start your prepl after Neovim you can just hit <localleader>cu by default to ConjureUp which will reload the config and sync the connections.

You can also provide +some -flags to ConjureUp which will toggle on and off specific connections. Great if you set some to be :enabled? false by default (live server port forward for example) which you want to explicitly toggle on at some point.

I hope this is good for everyone and is seen as a positive change, it is breaking (no more ConjureAdd / ConjureRemove / ConjureRemoveAll) but it's the last breaking one I could think of. I've wanted to implement it for quite a while now, glad I've finally got around to it!

Get in touch with me on Clojurians Slack (#conjure @Olical) or twitter (@OliverCaldwell) if you have some questions around this change.

Safer parsing

05 Jun 21:08
d2c1aa1
Compare
Choose a tag to compare

See #40 for more details, but records being returned from your REPL will cause Conjure to barf at the moment. I can't fix that until I rework how errors are managed and I can't do that until I get a patch into ClojureScript (although I might work around that...).

I've basically made it so these weird parse errors will no longer kill your connection, they'll just show you the error. You can still convert records to maps and continue with your day. I'll get this fixed as soon as I can.

Virtual text on eval and many fixes

05 Jun 21:09
d2c1aa1
Compare
Choose a tag to compare

Phew! This looks like the last release before I take a swing at #15 which will be a breaking change.

  • Tidied up how quick doc worked.
  • Got quick doc working on insert mode
  • A bunch of small internal refactoring
  • Improved the compile script slightly, does less work each time now
  • Added a few options you can use to disable things like quick doc (see the README)
  • Refactored the log buffer to allow appending while it's not visible which allowed me to...
  • Show single line eval results as virtual text, only show the log if there's output that doesn't fit in virtual text

So the log buffer is going to appear a lot less now, but you still have access to it when you want and it contains the history of your evals. I think this UX is a lot nicer, your windows and splits are only messed with when there's large output or when you ask for the log buffer now.

If you don't like this change or want more config etc, hop in #conjure in the Clojurians Slack or hit me up on twitter via @OliverCaldwell. Or open an issue here and we can discuss your thoughts!

Actually fix quick doc bug

30 May 20:53
f1b90d8
Compare
Choose a tag to compare

Sorry about the patches, I thought I'd fixed it, realised I hadn't then actually fixed it. Hooray for v0... and patches! See v0.16.0 to see more about quick doc.

More guards for quick doc

30 May 20:28
a5a8dfa
Compare
Choose a tag to compare

See v0.16.0 for the real update, this patch just adds some more protections just in case something goes wrong. It shouldn't, but it's more resilient now.

Virtual text doc on CursorHold

30 May 20:15
886bbf8
Compare
Choose a tag to compare

I've added documentation lookup on CursorHold that displays with virtual text next to your current line.

It doesn't use the word under the cursor, like K, it uses the head symbol of the current form. So if your cursor is the | in this example you'll see documentation for +.

(+ 10 |10)

Screenshot_2019-05-30_21-15-20