Skip to content

Releases: Olical/conjure

v4.22.0

19 Jul 17:40
Compare
Choose a tag to compare
  • Added @TimoKramer to the sponsors list <3
  • Merged #222, adds borders to the HUD (you can turn this off!), thanks @p00f!
  • Merged #223, increases the amount of lines that will have ANSI colour codes stripped out. Thanks @heyarne!
  • Fix a weird bug around "bdelete"ing the log buffer. The buffer is now correctly revived when you next view it, even if you bdelete it. Fixes #221.
  • Fix path separator mixing, which should fix the Windows support. Fixes #224.
  • Updated Aniseed with similar path fixes.

v4.21.0

13 Jun 13:28
b55e490
Compare
Choose a tag to compare
  • Added two new sponsors! Thank you @beanpuppy and @rbatista! ❤️
  • Added an interrupt mapping for Racket which fixes #213. So you can cancel unclosed forms as well as infinite processes. It's set to <prefix>ei by default, same as the Clojure one.
  • Added a workaround for #212 and raised an issue with Neovim for this bug: neovim/neovim#14801

Another small update but hopefully a welcome one 😄 that bug in #212 was a doozy, one of the worst I've had to tackle in the project. I'm thankful it wasn't my mistake in the end and I could work around it, but I reaaaly had to go down the rabbit hole to work it out. I recommend checking out the issue thread to understand what was going on, kinda fun!

I'm not really making any major moves on the project right now, I just want to get into steady careful maintenance for a while. Definitely feeling challenged by work which takes away from my remaining focus time each week for OSS. So I'll make sure I spend what little time and energy I have left each week on careful fixes and improvements.

I hope you've all had wonderful weekends! I got my first COVID vaccine 🎉 very thankful that I have access to it now, stay safe out there everyone. Enjoy the rest of your weekend and give yourself time to relax. You rock.

v4.20.1

08 Jun 11:29
643ae9b
Compare
Choose a tag to compare

Hot fix for the Conjure School without Aniseed installed #214.

v4.20.0

31 May 11:14
31820e3
Compare
Choose a tag to compare

Hello Conjurers! I hope you had a great weekend and your week is off to a good start. Here's a fresh set of fixes, features and improvements to help you get through the Monday. Also, now I have discussions enabled on my repositories and I'm creating one for each release.

  • Add @daveyarwood to the sponsors list! Thank you so much ❤️
  • Update Aniseed and Fennel with various fixes and improvements.
  • Display the portfile used in Clojure nREPL sessions. So you can work out where the automatic port came from, this will help you spot pesky .nrepl-port files laying around in your home directory that Conjure picked up on thinking it was being helpful. (Conjure walks up the directory tree to find a .nrepl-port to connect to)
  • Added g:conjure#eval#gsubs, a generic set of substitutions you can configure for your evaluations. See :h g:conjure#eval#gsubs for more information, it allows you to make things like comment blocks evalable! You can manipulate your code using Lua string substitutions before it gets evaluated, like a layer of editor local macros at the source code level. #132
  • Added g:conjure#client#clojure#nrepl#eval#raw_out which, when toggled on, will strip the ; (out) prefixes from stdout text, allowing you to pprint code or data and work with it immediately in the log. Avoiding the step of stripping the comment prefix.
  • Added auto babashka REPL support for Clojure! When opening a Clojure file without an existing nREPL running, Conjure will start and manage a babashka process for you! You can configure this to start any REPL process, including a regular JVM Clojure one. See :h g:conjure#client#clojure#nrepl#connection#auto_repl#cmd for more information.
  • Fix extracting the namespace name from some comment heavy namespace forms. #207
  • Merged #208 which added help tags to ALL of the help text files! So now you'll notice I can reference :help ... and a specific configuration option to link you right to it!
  • Fixed evaluating forms with an escaped closing parenthesis hidden inside them. #209
  • Fixed some of the Clojure actions such as displaying the previous error with the Neovim 0.5 eval highlight feature enabled.

I think that's all for now! There's many smaller commits that aren't very interesting that I left out, but these are hopefully all the things you may find interesting 😄

Have a great day! I'll continue to work on Aniseed's improved module system and Magic Kit, until then, have a great day!

— Ollie ✨

Lazier module loading and Fennel autocompletion fixes

15 May 13:10
5d3b1af
Compare
Choose a tag to compare
  • Added @ketansrivastav and @Akeboshiwind to the sponsors lists, thank you so much! ❤️
  • Updated Aniseed, made the most of the lazier loading tools and optimisations.
  • Fixed #204, handle more namespace metadata in Clojure.
  • Fixed Aniseed Fennel module completion when using autoloaded modules.

Docs, Clojure test runners and Aniseed

25 Apr 12:44
b7cc8a2
Compare
Choose a tag to compare

Hey! No huge features, mostly slight performance tweaks and fixes since I'm mostly working on magic-kit, the Conjure + Aniseed starter kit for Neovim 😄 it's for new people and experienced users alike, hope to share it soon!

  • Add a about vimscript booleans
  • Add documentation for the highlight eval feature
  • Add overrides for Clojure test runner config, mostly adding for the kaocha integration
  • Fixed test running for figwheel / piggieback evals
  • Update Aniseed, includes Fennel 0.9.1 and Aniseed's new "autoload" concept which replaces "require" with a lazier approach. Also added aniseed.core/str function, like Clojure's.
  • Added direnv + nixos config for those of us working on Conjure using NixOS 😄 it pulls in more REPLs for you to test with (only relevant to contributors really)

Highlight eval, kaocha testing and various fixes!

01 Apr 10:52
46b766d
Compare
Choose a tag to compare

Hello everyone! I hope you're all having a good week, I'm on a two week break from work and I've accidentally spent a lot of it working on Conjure. Oopsie! That means you all get a new Conjure version though, so yay! Now onto the changes 🎉

  • Merge #193 - adds optional highlighting of evaluated forms, requires Neovim 0.5+ (nightly builds) and the option enabled, check out :h conjure for information on this if you're interested. It works really well! Thank you for submitting it @taw10!
  • Fixed and documented some configuration options for the stdio clients, should make using different Scheme REPLs easier (#199, #198).
  • Handle long form metadata in deftest forms in Clojure when running the current test #196
  • Created my own fennel.vim syntax fork and linked to it from the docs. It includes a few outstanding PRs against the upstream repo as well as support for Aniseed's module macro symbols. I may include this in Conjure + Aniseed by default in the future so you don't need to worry about Fennel support in your editor.
  • Support kaocha with Clojure's testing mappings for #188! See :h conjure-client-clojure-nrepl and that issue for the setting you need to change. It has the exact same mappings, but it'll run the tests through kaocha instead of clojure.test!
  • Handle stdio REPLs failing to start due to not being installed etc. It'll now tell you what went wrong instead of pretending everything is fine #197.

Have a wonderful weekend, get some rest, you're doing great.

image

Various Schemes, tree-sittings and fixes

17 Mar 11:04
a2298d1
Compare
Choose a tag to compare

Hello! I have a late start at work today so I thought I'd take a little time to release the current bundle of fixes and improvements before I dive into any more. I hope you find these useful!

  • Warning: Renamed CljRunCurrentTests to CljRunCurrentTest, the only breaking change in a long time. I hope this doesn't break things for people but I didn't want to leave it typoed.
  • Fixed #181 by trimming off whitespace from code sent to Guile REPLs.
  • Prevent GitHub's linguist from assuming Conjure is written in Hy, just because there's a big Hy file in the dev directory that I use for testing. Also tried to have it detect Fennel but I doubt that'll work.
  • Added a tree-sitter module to Conjure's internals. Won't work unless you're using Nightly Neovim but may prove useful eventually!
  • Hooked the tree-sitter module up to form extraction, see g:conjure#extract#tree_sitter#enabled for the requirements. So you get to make the most of tree-sitter and bypass all of my paren hunting code if you have a new enough Neovim! This means that we'll maybe be able to add things like Python and Julia #184 support early, but with the caveat of requiring a new Neovim.
  • Merged #175. Added MIT Scheme support! So now we have the racket filetype loading the Racket client and the scheme filetype loading the Scheme client. The Guile socket file client is still there but no longer the default Scheme client since I think MIT is more ubiquitous and the way it's implemented (stdio) is better for "just open a file and eval". It's easy to switch over to the Guile socket file client if you so wish.
  • I couldn't have Racket, MIT Scheme and Guile all ready to go at once due to how much their filetype settings overlap (and even flicker between each other! There's race conditions in the racket filetype startup for example!).
  • Added on-exit hooks to all clients. This is called just before Neovim exits and gives the client some time to tidy up it's things before politely dying. This was mostly in response to #185, if you're experiencing this hanging issue on exit, please open a new issue with as much info as you can! I think it requires a specific setup of OS!
  • Added filtering by extension for filetype / client associations. I'm using this already to limit the Racket client to the racket filetype and file extension (.rkt). Same goes for Scheme being linked to .scm. This is because the racket filetype flickers to the scheme filetype briefly at startup sometimes and we don't want MIT Scheme jumping into your Racket file before being swiftly replaced. You can tweak this config if you so wish or use it yourself to restrict other clients! (see :h conjure)

There were far more commits than features and fixes, I went back and forth on things a fair bit this time. I spent a long time on this one despite the list not being particularly long. Here's hoping the next release will be short and efficient 😄

I can finally deprecate Olical/vim-scheme after about four years of iterating on REPL tooling. It was something that kicked off my obsession with editor <-> REPL interactions and I'm so glad I get to replace it with it's bigger, better descendant project.

I'm really hoping the next release will mostly be bug fixes and improvements to existing clients (especially Clojure! ❤️ my original and only language love). I've done a fair bit of work to broaden the client scope which means more users which means more conversation and help in the community (I hope!).

I've envisioned Conjure as a fulcrum tool in the niche REPL-y language space for a while now (since it went multi-language). I'm hoping I can make the audience broad enough that it begins to take on it's own community momentum, or even (dare I dream it) increase enough sponsorship that I work on it full time here and there. Thank you again to all of my existing sponsors, I think of you when I'm hacking away on a Saturday morning ❤️

Have a great rest of your week everyone!

Guile, Hy, vim-repeat fixes, better HUD positioning and more!

27 Feb 15:18
4dc7c74
Compare
Choose a tag to compare

Hello all! A bunch of things in this release! I hope you're having a good weekend so far and this just improves things a little more 🙂

I've also whipped up a YouTube video showing how I work with Conjure, I thought some of you may find that interesting: How I use Conjure and Neovim to interact with Clojure (and more!)

  • Merge #174 - attempting to disable custom readline config that conflicts with various stdio clients, that doesn't seem to do the trick yet, but this is laying groundwork for a good fix soon! Until then, make sure you don't have any special global readline config in your REPL if you want to use it with a Conjure stdio client.
  • Merge #175 - adds support for Hy over stdio! (quickstart)
  • Merge #178 - adds support for Guile over a socket file! (quickstart)
  • Fixed vim-repeat's escaping for certain user mapping setups. Should be safe no matter what your mappings are now. My apologies to anyone this impacted!
  • Support dotted filetypes, so now scheme.guile will match the scheme or guile filetypes. #177
  • Added config and improvements to make HUD positioning far smarter and more flexible. So now you can have the HUD appear at the bottom, taking up the full width, and moving to the top if your cursor is too low on the screen. Hooray! See #176 for initial discussion and example config.
  • Added types to Aniseed Fennel omnicompletion, so now you know what's a function and what's a table. Handy for me while I work on Conjure itself!

I think that's everything! I hope these are useful and make things a tiny bit smoother. Enjoy! Have a great rest of your weekend!

Fix eval at mark, more vim-repeat!

10 Feb 22:07
88e7865
Compare
Choose a tag to compare

Hey! So I'm reaaaly sorry for breaking "eval at mark" when I introduced vim-repeat support (#171) in the latest version (thanks for pointing it out @arthropodSeven! #172).

This patch fixes that issue and hooks up "eval at mark" to vim-repeat (if you have it installed) correctly. So you can use <prefix>emF or whatever then . to repeat that same mark eval! Handy!

Keep those reports flowing if I break things, I hope it's extremely rare (it seems to be) but I do appreciate reports as and when I slip up.