conjure

:neovim:+:clj: https://github.com/Olical/conjure - If you're enjoying Conjure and want to say thanks: https://github.com/users/Olical/sponsorship :smile: (alt https://conjure.fun/discord)
dharrigan 2021-01-05T10:01:15.371100Z

Speaking a bit out clojure-lsp etc.,

dharrigan 2021-01-05T10:01:32.371600Z

it recently learnt the ability to do semantic variables

dharrigan 2021-01-05T10:01:48.372Z

would that work with conjure (+ coc-conjure)?

2021-01-05T10:09:27.372400Z

dharrigan 2021-01-05T10:09:41.372700Z

There you go. It can be added on to

emilaasa 2021-01-05T10:09:47.372900Z

Nice

Olical 2021-01-05T10:09:53.373100Z

Thank you so much, David!

dharrigan 2021-01-05T10:09:56.373400Z

np

dharrigan 2021-01-05T10:10:01.373600Z

I'll take the rest of the day off now

dharrigan 2021-01-05T10:10:04.373800Z

my work here is done.

Olical 2021-01-05T10:10:08.374100Z

Definitely!

Olical 2021-01-05T10:12:30.374500Z

Hmm not sure, it could well do! Not sure if @jlesquembre (maybe only on github, not on slack) has a better idea though.

emilaasa 2021-01-05T10:13:36.375100Z

Added some of my use cases to a comment

👍 1
Olical 2021-01-05T10:13:41.375200Z

Oh I see, so clojure-lsp provides semantic variables, coc-conjure provides completions results from CIDER :thinking_face: I guess you want to merge those two sources somehow? I don't think that's something I can do from within Conjure though.

Olical 2021-01-05T10:14:09.375900Z

This is a much better format for ideas than me adding a single sentence to my ever growing list of things to do 😅

emilaasa 2021-01-05T10:14:50.376700Z

Actually when I realized you could write nvim extensions in fennel I got a bit excited

emilaasa 2021-01-05T10:15:09.377200Z

I have avoided vimscript like the plague.. 😃

Olical 2021-01-05T10:15:36.377800Z

That's why I took a year long detour building Aniseed so I could eventually rewrite Conjure in it.

Olical 2021-01-05T10:15:47.378300Z

There's no greater motivator than my language snobbery.

emilaasa 2021-01-05T10:16:03.378700Z

That's cool 😃

Olical 2021-01-05T10:16:17.379Z

Hoping to add completion support to aniseed soon too!

Olical 2021-01-05T10:16:38.379400Z

Well, Conjure + Aniseed, the projects are two sides of the same coin really.

emilaasa 2021-01-05T10:17:41.380Z

Oh I stumbled upon aniseed a while ago, I guess I've been a fan of yours for a while =)

emilaasa 2021-01-05T10:18:05.380500Z

What's the plan regarding conjure vs lsp by the way?

Chase 2021-01-08T16:41:31.384600Z

So I have LSP and clj-kondo setup and things seem to be working fine. I'm curious how you folks are using them. Are you overwriting anything with conjure or coc.nvim for like "get definition"? How are you using it for refactoring?

Chase 2021-01-08T16:42:06.384800Z

Also, is there a good way to toggle them off and on? Sometimes when I'm trying to get into a flow I want to shut off all the warnings and such.

dharrigan 2021-01-08T17:00:11.385Z

I'm not doing anything special

dharrigan 2021-01-08T17:00:30.385200Z

I think I should put my config up. I'm interested to learn if I am missing out on something too

dharrigan 2021-01-08T17:00:44.385400Z

my impression is that clojure-lsp is ahead in the emacs world

Chase 2021-01-08T17:05:51.385600Z

Yeah, the guy running clojure-lsp seems to have a lot of cool stuff going on here: https://github.com/snoe/dotfiles/blob/master/home/.vimrc

Chase 2021-01-08T17:06:23.385900Z

Down towards the bottom. I probably should have made this a #vim topic

dharrigan 2021-01-08T19:23:27.386100Z

These are about the only mappings I use in my .vimrc atm:

dharrigan 2021-01-08T19:24:07.386300Z

nnoremap <silent> <c-space> :call CocAction('doHover')<CR>
nnoremap <silent> K :call <SID>show_documentation()<CR>
nnoremap <silent> cram :call CocRequest('clojure-lsp', 'workspace/executeCommand', {'command': 'add-missing-libspec', 'arguments': [Expand('%:p'), line('.') - 1, col('.') - 1]})<CR>
nnoremap <silent> crcn :call CocRequest('clojure-lsp', 'workspace/executeCommand', {'command': 'clean-ns', 'arguments': [Expand('%:p'), line('.') - 1, col('.') - 1]})<CR>
nnoremap <silent> crcp :call CocRequest('clojure-lsp', 'workspace/executeCommand', {'command': 'cycle-privacy', 'arguments': [Expand('%:p'), line('.') - 1, col('.') - 1]})<CR>

dharrigan 2021-01-08T19:24:43.386500Z

I'l l have to evaluate the recent updates to clojure-lsp to see if there are any others I may be interested in (his other ones' I removed since not that interested in them)

Olical 2021-01-05T10:21:32.381400Z

Their feature sets are derived from their constraints really. So Conjure is specifically REPL tooling, the only information it has comes from sending messages to a running instance of your program. LSP is purely static analysis so it has no idea about the running state but knows lots about the code at rest. My opinion is that if you can find a way to use both, you totally should. If someone has a sweet Conjure + LSP setup I'd love to read a post on it to be honest. Conjure will always be about live evaluation of code and tight feedback loops on what actually happened. LSP will fill in some gaps in completion and go to def tooling (even though Conjure supports that), they'll each excel in certain areas I think.

Olical 2021-01-05T10:22:19.381600Z

It's not so much Conjure vs LSP, but more how can we get both at once.

1
emilaasa 2021-01-05T10:23:07.381800Z

Cool - that sounds like a pretty good distinction and one that's technologically enforced as well.

emilaasa 2021-01-05T10:23:41.382100Z

I'll get on that blog post 😛

emilaasa 2021-01-05T10:24:40.382300Z

Might as well document the unavoidable frustrations I'll run in to.

dharrigan 2021-01-05T10:39:23.382500Z

Yeah, I have no idea how it would work either ;(

practicalli-john 2021-01-05T11:05:23.382800Z

@dharrigan has a conjure + LSP setup, I am sure he would be happy to share his setup

dave 2021-01-05T11:49:45.383Z

I also have both. It isn't difficult to pull off, they really are two separate things. I use COC as my LSP client

dharrigan 2021-01-05T13:24:04.383200Z

Happy to share it 🙂