This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-09-08
Channels
- # announcements (32)
- # aws (2)
- # babashka (21)
- # beginners (143)
- # cider (3)
- # cljsrn (13)
- # clojure (65)
- # clojure-dev (7)
- # clojure-europe (20)
- # clojure-losangeles (8)
- # clojure-nl (13)
- # clojure-norway (39)
- # clojure-uk (9)
- # clojurescript (39)
- # code-reviews (10)
- # conjure (2)
- # cursive (3)
- # datascript (6)
- # datomic (40)
- # events (5)
- # exercism (23)
- # fulcro (9)
- # funcool (2)
- # girouette (2)
- # graphql (4)
- # helix (8)
- # improve-getting-started (4)
- # integrant (7)
- # introduce-yourself (5)
- # jobs (3)
- # luminus (32)
- # malli (3)
- # off-topic (10)
- # pathom (9)
- # pedestal (4)
- # polylith (25)
- # practicalli (1)
- # re-frame (4)
- # sci (3)
- # shadow-cljs (5)
- # tools-deps (25)
- # vim (31)
- # xtdb (32)
Hi all. For a relative beginner, which would you suggest? vim-iced, conjure, or clojure-lsp? My work involves both clojure and clojurescript. I expect a few features - autocomplete for both the project and library symbols; refactoring; jump to definition; list usages; linting; etc.
clojure-lsp is recommended for both iced and conjure. its pupose is to provide static analysis , autocomplete, refactoring etc. iced and conjure are for the REPL style dev.
conjure vs iced is based on taste i think. can try both of them out, can decide which suits you better. conjure supports more lisps than just clojure, iced is more clojure focused. both support (neo)vim.
ah! so clojure-lsp works underneath, while the other two are more about repl. That clears up a lot of confusion.
hmm. no. it seems conjure/iced works alongside clojure-lsp
rather clojure-lsp is to be run beside both
where clojure-lsp is centered around the editing experience, while either of the latter two focus on repl experience. correct?
lsp is quite different implemented, can check on #lsp for more info. main idea is it analyses your code and deps statically i.e. not spinning up a JVM and eval-ing code. REPL clients need eval hence dynamic analysis
if youve used something like IntelliJ, lsp is equivalent to the intellisense that it has
yep. In fact, I have used Cursive, which gave me an impression that I will need only one of these tools to get the static analysis as well as the repl integration support. I see the difference now.
iced repl is very cool, it’s a “full” environment that’s meant to give you a lot of features and functionality, but that means it also locks you into its way of handling things
conjure is much less complex and has fewer defaults/keybinds/etc. iced has stuff like “macroexpand under cursor”, conjure leaves that up to the user to write a comment form and then write the (macroexpand '(macro-to-expand …))
to expand the macro
@UEENNMX0T I did not like the conjure's 'pop-up way', at least the one flaunted in their intro video. I would rather have an REPL running in a vim frame. Is that possible?
hmm i think so! i only recently started using it cuz i found a neovim gui i like (VimR for osx), but i haven’t read through most of the docs so I don’t know
@UEENNMX0T It's easy enough to extend Conjure with macroexpand
https://github.com/walterl/conjure-macroexpand
that’s excellent
@UJY23QLS1 have you considered opening a PR for Conjure to bring your code directly into the project?
@UL6NS3E7P Avid conjure user here. I tend to use the pop-up window less, and a vertical split more with <leader>lv. The real magic of conjure, to me, is having a log of your work, and being able to jump into the log split-window and explore it as text -- I'll yank text objects (data) or search large data structures, etc.
> The real magic of conjure, to me, is having a log of your work, and being able to jump into the log split-window and explore it as text -- I’ll yank text objects (data) or search large data structures, etc. (edited) @U09QBCNBY sounds like an interesting use case. I wonder if iced can do this too.
@UL6NS3E7P I've never used vim-iced, so I am admittedly biased. I would be curious to know if it supports this kind of workflow as well!
Give the page a read! It’s not super long. It supports capturing stdio and putting that in a buffer, running tests and prettying results, executing and loading code with a command
@U09QBCNBY this video gives a glimpse https://www.reddit.com/link/lqmp53/video/7zf3hknu99j61/player

I say all this as someone who just moved from iced to conjure lol. Vim iced is very good and I liked it a lot, just decided to give conjure a try when I moved to neovim and have found it less bulky than iced
I'm using vim-iced and I have a few commands defined to extend the command palette. Is there some way to get it to work universally without having to use :IcedCycleSession
to switch between clj/cljs?
For example, I have a Restart Server
command, but it understandably doesn't work when I'm in a cljs session. I define the command like this in my local .nvimrc
:
let g:iced#palette = {
\ 'Restart Server': ':IcedEval (sheluchin.server/restart)',
\ }
How about like this?
let g:iced#palette = {
\ 'Restart Server': ':call iced#nrepl#eval#code("(sheluchin.server/restart)", {"session": "clj"})',
\ }
This forces to evaluate code in clj
session.@UBL24PLE6 Many thanks. Is there a way to modify those palette commands without restarting vim and the iced repl?