Fork me on GitHub
#conjure
<
2020-04-30
>
Olical09:04:11

Poll time! Who thinks Conjure develop is looking good and should be cut as a stable release, replacing the master branch? (🚀) And who thinks there's more to do before it's ready for day to day use, what do you need? (🛠️) Any beta testing right now is hugely appreciated! I want to know about glaring issues ASAP.

🚀 20
🛠️ 4
Olical09:04:42

Once the main release is out it basically gives me time to focus on quality of life, bug fixes and features. I don't want to add extra things for the initial release because I want it to be viable and stable, so you can use it day to day while I work on more optional things in the background.

dharrigan09:04:15

I'm still on Conjure Classic 🙂

dharrigan09:04:23

But happy to make the switch when you want testers 🙂

dharrigan09:04:51

Perhaps I should just switch now - probably too late for testing and cutting a release?

Olical09:04:59

If you want to make the switch I'd be more than happy to support you! Not that I think there's much to it, it's near enough exactly the same in many ways. It may be a rewrite but it still "smells" like Conjure.

Olical09:04:30

I'd highly recommend it, it's working great for me! And the more people checking it out and giving me feedback the better. Especially your highly valued feedback 😄

Olical09:04:47

I can walk you through it if you'd like, just give me a shout. The only thing I could see you having to actually mess with would be key mapping customisation, but the new system is quite nice (in my opinion) so it should be easy.

Olical09:04:09

There's not even a .conjure.edn to fiddle with any more!

dharrigan10:04:41

Sure! Let me just get some code deployed then I'll free up time to do the switch.

Olical10:04:09

No rush! Excited to see if things just work for you and what your thoughts are.

dharrigan10:04:23

Okay, so trying

Olical10:04:04

The demo I'm going to put in the readme: https://asciinema.org/a/325517

💯 4
Olical10:04:29

I should probably start another chat channel at some point that's not so tied to clojurians slack :thinking_face: I hate losing history here. Could do gitter or something eventually.

pyrmont10:04:28

I wish the alternatives had decent mobile clients.

Olical10:04:35

Yeah, there's no great solution. Gone are the days of IRC 😭 although we could always have an IRC home somewhere. I would just like something with infinite history and a client that doesn't grind my laptop to a halt.

pyrmont10:04:55

Gitter has IRC bridging.

Olical10:04:56

I'm okay still being here all the time too, I just want to give people options to interact and ask questions.

pyrmont10:04:35

I'm testing it out now with another community. .

Olical10:04:17

Discord is one of my favs for communities, but it's a bit heavyweight, like Slack.

pyrmont10:04:05

Discord is decent but notifications are broken on iOS (at least they are for me). That's not a huge issue, though. And they're only broken inasmuch as they don't clear.

pyrmont10:04:41

I like IRC just because it's so open but Discord is a good alternative that doesn't have some of the drawbacks of Slack.

Olical10:04:10

No rush, but yeah, I'll consider a gitter + IRC combo or something for the future.

Olical10:04:40

I think I'll avoid changing the code for a little bit, just to let everyone test it (please try to break it). If you get the HUD or log into weird states or evals just stop working please let me know. Barring any showstoppers I think this will be the commit I release! Then I'll crack on with quality of life improvements, features and language clients! I'll re-share the poll for visibility.

Olical10:04:39

Made a gitter room if anyone's interested! https://gitter.im/Olical/conjure

dharrigan10:04:58

I rarely use gitter - sometimes for spring stuff, but can't recall last time I was there.

Olical10:04:21

Me neither, I'd just like some more options for people since I'm trying to open Conjure up to more languages. Having Clojurians Slack as the only place feels restrictive? Also Slack is a huge burden for me 😅 my poor CPU is always chugging with it open.

dharrigan12:04:55

The connection is super fast

dharrigan12:04:02

load vim and bang, connected.

🎉 8
dharrigan12:04:58

it sorta hangs at the prompt

dharrigan12:04:30

I press return a few times in the repl and I don't get a prompt back - now of course, this is not an issue with conjure, just nrepl, but is this observable by others?

Olical12:04:28

Hmm I haven't seen that, but then again, I don't really type in the terminal

Olical12:04:44

Another lib getting in the way like rebel?

dharrigan12:04:09

I'll strip it all the way back

dharrigan12:04:00

that's with nothing but nrepl running

dharrigan12:04:12

I pressed return a few times at the user prompt

Olical12:04:25

I had a bit of a delay but it worked eventually!

dharrigan12:04:00

Right, I've firing up an nrepl in code now

dharrigan12:04:02

when I load up clj

dharrigan12:04:11

so I have rebel readline and nrepl now

Olical12:04:41

Ohhh nice! Best of both worlds!

dharrigan13:04:29

Funnily enough I was watching that episode(s) the other day

dharrigan13:04:37

You know in the log buffer, if you eval, the results goes to the end of the log, can something be considered so that it evals to the side? i.e., (+ 1 2) => 3

dharrigan13:04:22

In the help, it says ":ConjureConfig [args] Displays or sets a configuration value with an optional language client prefix."

dharrigan13:04:58

I type in :ConjureConfig and it says E471: Argument required

dharrigan13:04:27

Reading it, I thought that by typing in :ConjureConfig without args, would display all current configuration options as set

dharrigan13:04:26

Loving the new Conjure 🙂

Olical14:04:46

Good point on the config! I'll have a think about those docs!

Olical14:04:06

And not sure about displaying to the side :thinking_face: since it'll show the HUD to display the result anyway, food for thought though!

dharrigan14:04:24

Is there a way to show all currently set config options?

Olical14:04:52

All of their values and defaults are in the help file. You can only see individual values or tables of values, so :ConjureConfig mappings would show you all mappings. Maybe I can add a way to show all, it'll just be overwhelming, there's a lot.

Olical14:04:19

In theory, they should all be set to the defaults that are in :help conjure other than those you've set with your vim config

nate14:04:30

Reading back, another option for chat is Zulip. The mobile app is decent.

💯 4
nate14:04:55

The scicloj community uses it as a first class

dharrigan14:04:36

how about dumping all config options into a temporary buffer?

dharrigan14:04:42

meh, something to ponder.

Olical14:04:57

Yeah, I'll add a note for config visibility. Not sure how to solve it, but can find a way.

Olical14:04:13

Why do you want to print all of it by the way? And would that include all language clients config too?

dharrigan14:04:33

I was reading through the docs and whilst I could see each entry, I was wondering - just show me how it's all configured, right now.

👍 4
dharrigan14:04:55

what all the defaults have been set, with the overrides I've set (not that I've set any yet) in one place.

Olical14:04:34

Ah okay, well I've added it to my list

Olical14:04:54

Maybe :ConjureConfig * and :ConjureConfig clojure.nrepl/* or something.

dharrigan15:04:05

Maybe something like that

dharrigan15:04:17

Something to ponder 😉

dharrigan15:04:29

So far, no biggies with my switch

Olical15:04:51

Yay! Glad to hear it. I'm mostly looking for anything that actually gets in the way of your work right now

Olical15:04:59

If it's just kinda minor things it can go on my list

Olical15:04:11

I want the release to be perfectly workable for day to day work though.

dharrigan15:04:27

When are you thinking of releasing it?

Olical15:04:41

Within the next few days I think!

Olical15:04:10

Just a few finishing touches to feedback, then cut a stable release, then continue with polish and features for future releases.

dharrigan15:04:25

(the only thing so far, is I'm used to do <localleader>cL to close the log

dharrigan15:04:51

now I have to be in the log window and do :q to exit

dharrigan15:04:20

Is this right too?

Olical15:04:15

Very cool seeing someone else's theme + HUD + log 😄

dharrigan15:04:45

I have the log window open, and the hud shows too

dharrigan15:04:22

It's reproduceable - if you open the log window, type something in (+ 1 2), then eval it, then cursor up and eval it again, you get the hud window appearing

dharrigan15:04:29

Oh, I see...

dharrigan15:04:41

If a result is appended to the end of the log and you don't currently have a
log on your screen with the cursor following along, the HUD will
appear (unless you've disabled it through config). This is to ensure you
always see new entries, even if you're looking at something further up in the
log.

dharrigan15:04:03

makes sense, although for people with the screen real estate, it surprised me 🙂

Olical15:04:42

Ah yes, I'll be changing that behaviour slightly soon. So the HUD will only show if you can't SEE the bottom of the log. Not if your cursor isn't on the last line

Olical15:04:49

That should make a little more sense visually.

dharrigan15:04:13

I'm trying to break it - failing 🙂

dharrigan15:04:05

is there a quick mapping to close the buffer?, like in conjure having <localleader>cL

Olical15:04:08

And a key to close all logs might be useful

Olical15:04:13

I don't have a mapping for it right now, no

dharrigan15:04:15

that would be super neato

Olical15:04:36

I'll add it. Should it be EVERY log window (and the hud...) or should it be just the ones in your current tab :thinking_face:

dharrigan15:04:19

I only have one thing open, just the current log

dharrigan15:04:26

(apart from my clojure code natch)

dharrigan15:04:50

how about lc as you have ls and lv and lt

dharrigan15:04:56

and lC for close all?

Olical15:04:18

Or lq for log quit :thinking_face:

Olical15:04:27

I'll have a thonk

dharrigan15:04:56

do have a thonk 🙂

Olical15:04:06

I think closing all windows everywhere would be okay tbh

Olical15:04:15

Limited to the tab actually, yeah

Olical15:04:04

Thank you for the feedback so far though! All good to know!

nate15:04:03

Limited to the tab sounds good.

nate15:04:31

I don't know why I would want to close all logs in all tabs.

Olical15:04:04

Yeah, exactly.

dharrigan15:04:45

sure, that sounds good! 🙂

dave17:04:59

i have run into a slight issue on the develop branch. i'm not sure if it's because of my setup or what, but it seems like when i use the "eval at mark" feature, it might be adding additional buffers or something? i noticed that when i do "eval at mark," then i exit the buffer i jumped from via :x or similar, there seems to be another copy of that buffer underneath

dave17:04:16

i can't figure out how to reliably repro it, unfortunately. i tried again now and no dice

Olical17:04:36

That's suuuuper weird. So you closed the window, but it was then still open? The only thing I can think of is absolute and relative paths for the buffer, but I'm pretty sure neovim uses a canonical path for each buffer.

Olical17:04:53

So if you have a file open, it's only open once in one buffer. You can't have the same file open twice (afaik).

dave17:04:03

ok, interesting

Olical17:04:06

Unless we bugged neovim itself but I find that hard to believe.

Olical17:04:18

So if you have foo.clj open and you do :e foo.clj, it'll open that same buffer, not another one.

dave17:04:24

i'll keep an eye out for the next time the problem occurs, and see if i can gather more information

Olical17:04:09

Hmmm yeah, seems SUPER weird to me. Like how Nate (I think) got the HUD stuck open, I haven't seen that in months months since I first wrote it. If there's elusive bugs out there, I wanna squish em. Everything happens in one thread which makes timing issues and race conditions a lot less frequent, but they could still happen. Some things require a callback. If I'm holding onto some state via closure across a callback and that state is then out of sync, it can cause timing bugs.

Olical17:04:33

Any hint of how you might of done it will be much appreciated.

nate17:04:11

(stuck HUD was me, and I haven't seen it after the one time)

Olical17:04:09

Weird! I'll make a note to read the code and see if I can spot any way it could happen

keoko18:04:32

I’ve just started playing with conjure with a simple duct project. It is using lein + integrant and I was wondering if it is possible to use something like cider-refresh in conjure. I’ve just stumbled on this gist from the Conjure’s author but prepared for vim-fireplace https://gist.github.com/Olical/1c696c01ed573f1844a97b047aba30f3

Olical19:04:17

Oh yeah, that's me! It's actually built into the develop branch, you can hit your prefix key (<localleader> by default) and rr to refresh the changed namespaces.

Olical19:04:54

Check out :help conjure-client-clojure-nrepl and grep for refresh, there's options in there that let you set the before, after and dirs too!

keoko09:05:54

Thanks, I will try it. Now I am having issues connecting the lein repl with conjure. I’ll try to investigate a bit more.

Olical10:05:14

Oh odd, like it doesn't automatically connect? Might not be writing the .nrepl-port file?

keoko08:05:26

The .nrepl-port file exists, and it seems conjure connects to the repl but when a try to evaluate a simple form in a project file it logs>: eval (root-form): (inc 5) (err) Syntax error compiling at (example.clj:16:1). (err) Unable to resolve symbol: inc in this context

Olical09:05:17

That's probably to do with your namespace not being loaded yet :thinking_face: so you haven't evaled the ns form, which means when I swap to it with in-ns for you it doesn't have Clojure required.

Olical09:05:28

Maybe I shouldn't be using in-ns, maybe ns would be better...

keoko10:05:57

<localleader> ra did the trick. I presupposed I could run core functions without loading first the project namespaces.

keoko10:05:40

By they way, I also tried to set clojure.nrepl/refresh.after and clojure.nrepl/refresh.before configurations to reload integrant components and it looks like it is working. Thanks!

dominicm19:04:44

RE cider-refresh: @olical please still the code from replant to auto-detect the start/stop functions. I use it every day and managed to stop thinking about it.

Olical19:04:33

Ah good idea, had a vague notion of this on my roadmap already but was scared of it doing the wrong thing

dominicm19:04:27

I pretty much just loop over dev/boot.user/user and look for start/stop functions

dharrigan20:04:19

I suppose one thing

dharrigan20:04:35

if I do gd, the hub flashes up momentarily then disppears

👍 4
Olical20:04:58

Ah that's a fair point. It comes up to tell you that you requested to go to source and what it was. Just kinda to make sure you selected the word you wanted and a history.

Olical20:04:04

But I kind of agree this isn't required.

Olical20:04:13

Unless something goes wrong,

Olical20:04:24

Will disable the logging when you gd

dharrigan20:04:53

agreed, for normal operation it shouldn't flash, but for something like gd, even if no definition is found (perhaps you're typing adhead, thinking of a function you'll need in the future), perhaps no error should display either?

Olical20:04:14

I think if it works, it's silent, if anything goes wrong it tells you

dharrigan20:04:17

perhaps for normal cases, yes disable

Olical20:04:27

gd on a thing that doesn't exist goes "can't find it" rather than crickets

Olical20:04:48

something needs to happen on screen to confirm it's happened

dharrigan20:04:05

🦗 🦗 🦗

pyrmont01:05:12

Apologies for the spam but those emoji are terrifying.

dharrigan20:04:59

I find that distracting.

dharrigan20:04:11

(didn't happen with Conjure Classic)