You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Switch your plugin manager branch from master to main if possible.
Test the migrated code on the main branch and report any issues or feedback.
Pin to the Aniseed client if you don't want to switch to nfnl yet.
If contributing to Conjure, make changes on the main branch using nfnl.
Report any bugs or differences you encounter as issues or feedback.
Thank you for testing, and provide feedback on your experience with the client you're using.
From Aniseed to nfnl
Hey everyone! It's been a long time coming but a major refactor and conversion has pretty much been completed today! Thanks to the heroic efforts of @russtoku, Conjure is now built with plain Fennel and compiled with my nfnl plugin instead of my older, more heavy handed Aniseed.
There's history there because I developed Aniseed for Conjure, it's the reason it exists, they came into being side by side and were built in terms of each other in a fun meta circular way. Conjure was used on Aniseed which was used on Conjure!
Now times have changed, the Lua landscape in Neovim has improved, my opinions and ideas have shifted and as a result we have nfnl. I think it's a much more natural way to work with Fennel in Neovim. It makes it feel like a first class language, fully supported with no hard edges. Anything you can do with a .lua file can now be done with a .fnl file, there's no compile step because it happens as you write your .fnl.
We also use plenary busted and luaassert now instead of Aniseed's janky custom testing tools! It works so much better and is much easier to maintain. Off the back of that we've written a bunch more new tests for modules that never had any or had far too little! So Conjure is much more tested than it used to be pre migration.
You'll also see a warning in the Aniseed client about it eventually being deprecated in favour of an nfnl base one. You can follow the instructions there to dismiss it, I just want everyone to be aware changes are coming there so you don't get shocked one day in the future with no warning. You can pin to the Aniseed client to keep it locked in forever too, no pressure to switch, just a heads up that the default might change one day.
A new branch
I have moved the migration work onto the main branch which will eventually replace the master branch as the default. I will not delete the master branch because that would break a bunch of users setups. Instead I kindly ask all of you to swap your branch in your plugin manager to main if you haven't got anything too stressful going on right now.
If you can swap and get a day of work or hobby coding in with the migrated code and you don't run into any issues please do let me know here. I'd love to have usage reports in the wild for each client so I know someone with a vested interest in a particular client is happy with how it's working. There should be no differences, if you see something odd or different, raise it.
Any bugs you see can be raised as issues and posted here if you'd like. Any feedback is good feedback with this change, I need 👍🏼 to give us confidence to keep moving forward but I also need to see 👎🏼 to know if there's something wrong somewhere.
If you wish to make a change or improvement to Conjure now, please do so on the main branch using nfnl to make the change to the .fnl file. If you install nfnl it will only activate in projects that contain a .nfnl.fnl file anyway, so you can safely leave it sitting there unused if you only touch Conjure sparingly.
The future!
Once again, thanks to @russtoku for migrating so many files for me and for all of the users. Huge round of applause for them, the diff is HUGE with SO many deletions. The codebase has shrunk significantly off the back of this.
What this work will enable us to do is move faster and more confidently. LSP works now, we get warnings and analysis, formatting will work better, compilation errors are visible quicker and within Neovim. We even get to use vim.notify with pretty notify plugins for feedback instead of :messages or the CLI output of Aniseed scripts.
I hope the nfnl workflow and support for the rest of the Fennel tooling ecosystem (due to no magic module macros) will make it much easier for people to contribute and help shape Conjure into the tool they want or need.
I'll be aiming to keep fixing bugs in the near future but I also want to finally perform some well overdue refactors that make the stdio REPL and nREPL support far more DRY with a library module that's reused between the clients. This cleaner code with better Developer Experience should hopefully make this refactor far less daunting.
To the testers...
Thank you to all of you who choose to swap to the main branch and try things out for us. You're all heroes and I would send you all capes but this is a little open source REPL tooling Neovim plugin, we don't have that kind of capability. Please report in with how you find things and which client you're using.
Thank you so much to those of you who provide feedback and to all of those that contribute, you're all wonderful people and I can't thank you enough. Let's keep going 🎉
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
TL;DR
From Aniseed to nfnl
Hey everyone! It's been a long time coming but a major refactor and conversion has pretty much been completed today! Thanks to the heroic efforts of @russtoku, Conjure is now built with plain Fennel and compiled with my nfnl plugin instead of my older, more heavy handed Aniseed.
There's history there because I developed Aniseed for Conjure, it's the reason it exists, they came into being side by side and were built in terms of each other in a fun meta circular way. Conjure was used on Aniseed which was used on Conjure!
Now times have changed, the Lua landscape in Neovim has improved, my opinions and ideas have shifted and as a result we have nfnl. I think it's a much more natural way to work with Fennel in Neovim. It makes it feel like a first class language, fully supported with no hard edges. Anything you can do with a
.lua
file can now be done with a.fnl
file, there's no compile step because it happens as you write your.fnl
.We also use plenary busted and luaassert now instead of Aniseed's janky custom testing tools! It works so much better and is much easier to maintain. Off the back of that we've written a bunch more new tests for modules that never had any or had far too little! So Conjure is much more tested than it used to be pre migration.
You'll also see a warning in the Aniseed client about it eventually being deprecated in favour of an nfnl base one. You can follow the instructions there to dismiss it, I just want everyone to be aware changes are coming there so you don't get shocked one day in the future with no warning. You can pin to the Aniseed client to keep it locked in forever too, no pressure to switch, just a heads up that the default might change one day.
A new branch
I have moved the migration work onto the
main
branch which will eventually replace themaster
branch as the default. I will not delete themaster
branch because that would break a bunch of users setups. Instead I kindly ask all of you to swap your branch in your plugin manager tomain
if you haven't got anything too stressful going on right now.If you can swap and get a day of work or hobby coding in with the migrated code and you don't run into any issues please do let me know here. I'd love to have usage reports in the wild for each client so I know someone with a vested interest in a particular client is happy with how it's working. There should be no differences, if you see something odd or different, raise it.
Any bugs you see can be raised as issues and posted here if you'd like. Any feedback is good feedback with this change, I need 👍🏼 to give us confidence to keep moving forward but I also need to see 👎🏼 to know if there's something wrong somewhere.
If you wish to make a change or improvement to Conjure now, please do so on the
main
branch usingnfnl
to make the change to the.fnl
file. If you installnfnl
it will only activate in projects that contain a.nfnl.fnl
file anyway, so you can safely leave it sitting there unused if you only touch Conjure sparingly.The future!
Once again, thanks to @russtoku for migrating so many files for me and for all of the users. Huge round of applause for them, the diff is HUGE with SO many deletions. The codebase has shrunk significantly off the back of this.
What this work will enable us to do is move faster and more confidently. LSP works now, we get warnings and analysis, formatting will work better, compilation errors are visible quicker and within Neovim. We even get to use
vim.notify
with pretty notify plugins for feedback instead of:messages
or the CLI output of Aniseed scripts.I hope the nfnl workflow and support for the rest of the Fennel tooling ecosystem (due to no magic module macros) will make it much easier for people to contribute and help shape Conjure into the tool they want or need.
I'll be aiming to keep fixing bugs in the near future but I also want to finally perform some well overdue refactors that make the stdio REPL and nREPL support far more DRY with a library module that's reused between the clients. This cleaner code with better Developer Experience should hopefully make this refactor far less daunting.
To the testers...
Thank you to all of you who choose to swap to the
main
branch and try things out for us. You're all heroes and I would send you all capes but this is a little open source REPL tooling Neovim plugin, we don't have that kind of capability. Please report in with how you find things and which client you're using.Thank you so much to those of you who provide feedback and to all of those that contribute, you're all wonderful people and I can't thank you enough. Let's keep going 🎉
Beta Was this translation helpful? Give feedback.
All reactions