This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-04-24
Channels
- # announcements (8)
- # aws (12)
- # babashka (84)
- # beginners (380)
- # calva (56)
- # clj-kondo (52)
- # cljdoc (4)
- # cljs-dev (327)
- # cljsrn (4)
- # clojure (154)
- # clojure-italy (5)
- # clojure-nl (3)
- # clojure-uk (21)
- # clojurescript (52)
- # conjure (133)
- # cursive (64)
- # datomic (33)
- # emacs (22)
- # fulcro (35)
- # graalvm (24)
- # graphql (1)
- # kaocha (1)
- # leiningen (1)
- # off-topic (24)
- # onyx (2)
- # pathom (10)
- # re-frame (3)
- # reagent (3)
- # reitit (3)
- # shadow-cljs (48)
- # spacemacs (12)
- # tools-deps (98)
- # xtdb (7)
Current todo list before release (barring any bug reports from you fine folk): * Make sure completion is all good and support is ready in every async plugin. * Find and fix the issue @nate mentioned where he got his log / HUD into a weird state (still can't reproduce). * Finish documenting by writing up doc files on the Fennel and Clojure clients as they currently stand. * Battle test for a few days (everyone's help is very appreciated here ❤️ ) * Release!
I have a bunch of other quality of life things (folding multi line results, event hooks for reacting to certain output) but they'll come after. I just want to make this a good baseline and have it replace the existing release ASAP.
Also the ConjureSchool will make a comeback, but again, after the core is solid and released.
It's totally useable already, I hope 😬 going to write up some more docs now for the clojure specific stuff
If anyone has any gripes with :help conjure
please let me know now so I can tidy it up!
@olical Maybe this should wait for the docs to be finished but if someone wanted to use it with Fennel, is there a simple explanation on how to do that?
All you need is https://github.com/bakpakin/fennel.vim installed for syntax etc then you can just open any .fnl file and eval like you would Clojure.
Then you can install https://github.com/Olical/aniseed if you wanted to write some of your dotfiles in it and have them automatically compiled and loaded where required.
I still need to write up Aniseed's docs though, that's coming after Conjure has a stable release.
Cool. I'll look into that. I'm curious about using Fennel (or maybe Janet) for certain uses where I currently reach for Ruby and like the idea of being able to do that with a language with a sort of integrated REPL.
Ah neat, well bear in mind that the current Fennel support is entirely based on Aniseed and running within Neovim itself. If we want to have Fennel running on it's own LuaJIT process or something (like you would have Clojure running in it's own JVM process) that'll require another client.
So it can be done! Janet will be a cool one for sure, I can't wait to experiment with it.
Like how the Clojure client is nREPL specific, I may add one for prepl that you can swap to if you want one day. So this would be another Fennel client that wasn't based on Aniseed and allowed you to run things outside of Neovim's process.
i used it yesterday to do some actual work and it was a nice experience. it felt better than conjure.current. come on in, the water's fine 🙂
one thing i just ran into: if i start neovim and then start my nrepl server, is there a way to tell conjure to check again for the .nrepl-port file and connect?
aha! remember when I said that printing a lot sometimes gets the output incorrect? I figured out what is happening.
I would get results like this:
; (out) A quick brown fox jum
; (out) ps over the lazy dog
should be
; (out) A quick brown fox jumps over the lazy dog
then I thought it might be a boundary issue, so I copied the outputted text to another file a few times
I have parsing of partial bencode values working but I guess I also have to handle multiple nREPL messages for one result 😬
I don't know if there's a way for me to distinguish between two separate out messages with a line between them and one line that was split by nREPL :thinking_face: I don't think they get trailing newlines but I could be wrong
I just tried a big data structure (3397 characters) and that didn't have any superfluous line breaks
Yeah, that's rough, I'll preserve it in the future and find a way to join out messages properly. Thanks for the report!
I haven't reproduced it since I was initially writing it. I saw that issue when I accidentally lost the state of the hud and it's window id
maybe if there's a :ConjureDebugReport
command or something that will inspect things about the running plugin and dump it to a text file
I'll take a look at the out stuff now, I think it'll be tricky to solve properly but I'll give it a go!
You're more than welcome! I'm glad you're enjoying this version so far, I was worried everyone would hate the changes I've made 😅
heh, I understand, but you've done a good job of keeping development transparent, so we're all on board
Finished the core documentation (first pass anyway), so I've even got notes on client implementation now. I'll add the Clojure and Fennel client specific docs soon! Just going to look at joining Clojure out strs together now though.
The completion works with babashka nREPL https://asciinema.org/a/H7136YMD9J9bU7l6GZE1yVNAa !!!
Documentation and test output seem to go to the terminal but there's probably not much I can do with that. And where stdout goes wrt babashka is probably very debatable given it's context and commandline tooling.
Think I'll have to make my display-results
function return a stateful thunk to get this stdout displaying correctly :thinking_face:
I'll have a thunk
about that thunk
, but once that's sorted I might just need to document implementing completion clients, fennel and Clojure. Then release!
Error detected while processing /home/nate/.dotfiles/.vim/bundle/conjure/plugin/conjure.vim:
line 1:
9: Sorry, the command is not available in this version: lua require("conjure.main").main()
Oh! I need to completely disable conjure in normal vim. I didn't really think people would overlap their vim and Neovim config so I didn't worry about it.
Yay 🎉 I suppose I could add more about not having the HUD if you don't have floating windows and things :thinking_face:
I don't think there's a way to check for floating windows like that though, maybe I could sniff for a function but that could be awkward. I'll leave it as is for now.
Is there a way to customize the theme of the HUD?
I think that's just a highlight group, so it depends on your colour scheme :thinking_face:
yeah is my personal theme, I will try to tweek some settings
I'm googling but I'm not sure what the highlight group for the background of a floating window is called.
I may add optional borders at some point too, although I'm not sure yet since it involves all sorts of ASCII and window hackery. The less I add, the less bugs you can get.
woah I figured out, because the ;
the theme is interpreting the text as comment
which have this pale color
Oh yeah, it will do that, but I'm wondering if you can set the colour of your floating window background to something darker
good Idea
Pmenu and PmenuSel I think
Is possible to set to the log buffer to the botton panel when I open in the horizontal split or in the right panel on vertical split? Is configurable?
yeah I mean, I can move it around with Ctrl + W HJKL
but I'm quite used with the behavior of the old conjure of opening the buffer on the bottom
for vertical on top and for horizontal left
Ah okay, that's not right, mine appears in the bottom and right. So it's a vim config thing. I can set it, I hope everyone is okay with it always opening in the bottom and right.
So you can use set splitbelow
etc to make all splits open either to the right, left, top or bottom.
But I could force Conjure to always split that way, just not sure if I should :thinking_face: like should I rely on your global split config or override it? Some people might not want it to be overridden.
woah thanks for that settings
I will definitely add to my init.vim
but yeah, if is not hard to make a config for this settings at conjure side would be greate
but I really fine with the set splitbelow
I could definitely do it, it just adds more complexity and things I need to explain. If I rely on the global setting it's easy for me and built into Neovim. I'll see what some others think 😄 I think splitbelow and splitright are really good to have set anyway.
Might be fun for those of you playing with autocompletion now: https://twitter.com/OliverCaldwell/status/1253780097708036106