This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-01-05
Channels
- # announcements (14)
- # babashka (51)
- # beginners (154)
- # calva (24)
- # cider (4)
- # clj-kondo (24)
- # cljfx (11)
- # cljs-dev (3)
- # clojure (259)
- # clojure-europe (14)
- # clojure-nl (2)
- # clojure-seattle (8)
- # clojure-spec (6)
- # clojure-taiwan (1)
- # clojure-uk (52)
- # clojurescript (123)
- # conjure (43)
- # core-async (15)
- # datomic (14)
- # events (1)
- # fulcro (90)
- # helix (7)
- # jobs (6)
- # meander (10)
- # nrepl (1)
- # off-topic (13)
- # pathom (1)
- # portal (8)
- # re-frame (7)
- # reveal (11)
- # shadow-cljs (99)
- # spacemacs (11)
- # testing (11)
- # vim (63)
Hmm not sure, it could well do! Not sure if @jlesquembre (maybe only on github, not on slack) has a better idea though.
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.
This is a much better format for ideas than me adding a single sentence to my ever growing list of things to do 😅
Actually when I realized you could write nvim extensions in fennel I got a bit excited
That's why I took a year long detour building Aniseed so I could eventually rewrite Conjure in it.
Oh I stumbled upon aniseed a while ago, I guess I've been a fan of yours for a while =)
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.
Cool - that sounds like a pretty good distinction and one that's technologically enforced as well.
@U11EL3P9U has a conjure + LSP setup, I am sure he would be happy to share his setup
I also have both. It isn't difficult to pull off, they really are two separate things. I use COC as my LSP client
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?
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.
I think I should put my config up. I'm interested to learn if I am missing out on something too
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
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>