This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-05-21
Channels
- # announcements (2)
- # aws (1)
- # beginners (172)
- # boot (3)
- # calva (19)
- # cider (18)
- # clj-kondo (5)
- # cljsrn (18)
- # clojure (47)
- # clojure-europe (9)
- # clojure-finland (7)
- # clojure-italy (3)
- # clojure-nl (15)
- # clojure-spec (20)
- # clojure-sweden (2)
- # clojure-uk (72)
- # clojurescript (45)
- # cursive (42)
- # datomic (6)
- # duct (4)
- # emacs (4)
- # expound (48)
- # figwheel-main (7)
- # fulcro (64)
- # graphql (8)
- # hoplon (9)
- # hyperfiddle (1)
- # jackdaw (8)
- # jobs (4)
- # jobs-discuss (61)
- # klipse (5)
- # leiningen (6)
- # off-topic (72)
- # pathom (2)
- # planck (11)
- # re-frame (1)
- # reagent (3)
- # reitit (16)
- # remote-jobs (17)
- # ring-swagger (3)
- # shadow-cljs (49)
- # spacemacs (12)
- # sql (3)
- # tools-deps (124)
- # vim (64)
- # xtdb (4)
Any thoughts on these bindings so far? Thought now's the time for some breaking changes to defaults so input is appreciated! https://github.com/Olical/conjure/pull/37/files#r285999533
* e
is anything eval related.
* t
is anything test related.
* c
is anything meta to do with Conjure itself.
I'll probably add f
for formatting things and r
for reloading things with tools.namespace
soon.
That's perfectly fine! That's why I let you turn off the defaults :D I'm excited to hear that you've tried it though!
Oh I probably should have told you that I'm using it full time for several weeks now. It is great!
So you can kinda match up words to each first character, which a bunch of vim is designed around. Except when it's not...
I'm aware that vim-sexp + vim-sexp-mappings-for-regular-people may conflict with some if I'm not careful, not sure about any other popular plugins using lots of localleader mappings.
In practice, it's saved my ass during development where I broke Conjure's regular eval π (I can then load-file with a fixed version so I can regular eval again)
i could also see that being useful if you've made a bunch of changes to the buffer and you haven't saved it yet
I'm not so sure about the binding though, most of the time you want eval buffer I think. Why make that further than eval file :thinking_face:
and then you realize you want to try something out using the version you have saved to disk
because anecdotally, i use the dvorak keyboard layout, and b is slightly closer for my finger to reach than f π
Haha okay, well that make sense. I think mnemonic makes more sense than distance when they're that close. I'll just have to train my brain to get to this new layout π¬
i think it's probably reasonable to optimize for qwerty users' comfort. us weirdos who use other layouts can always create our own mappings if we find any we don't like π
that's why i find vim so pleasant in dvorak. it doesn't really matter how far away the keys are, because i've sort of trained my brain to think in terms of mnemonics because that's the vim way
You know what would be cool, and more of a neovim feature (acid?) is the ability to show the evaluted expression beside the form, like in emacs
Yep, it's floating around in my head π but it would only work for small outputs, like one line things so it's not super general. So I need to think about how big things are displayed, like does the log buffer then become optional etc
I like the log buffer because it works like a REPL output you can edit and interact with, if you make it pretty and inline it looks nice but it's not useful if that makes sense? So I might add it as a pretty thing for when your eval output doesn't print anything to avoid opening the log buffer on every eval. Something to think on for a while I think.
Also considering using that space for inline doc strings for what args the symbol under your cursor takes
Yeah, it shows the eval result right? I'm just wondering what happens when the output is 100s of lines long. I design Conjure around my day to day work with lots of big maps so I quite like it in a buffer I can work with. Maybe defaulting to inline with having the full formatted thing a keypress away would be cool though!
i think the sweet spot would be if you provided options to allow the user to specify if they want results in the eval buffer, or inline, or both, etc.
acid.nvim does just show the eval result inline. you have to open up an "output buffer" if you want to see STDOUT
when the eval result is super long, it flows off the screen and you just can't see the full value
Because I could probably format it to 80 cols and split it across a bunch of lines :thinking_face: I think the rust tooling does this with compiler output
> Maybe defaulting to inline with having the full formatted thing a keypress away would be cool though! that's exactly what i want! that would be incredible
i like how the inline result doesn't take up valuable screen real estate, which is nice when the result is short
Yep, 100% agreed. But if there's stdout or something then you still want the log to open
Yeah, it's part of the UX I wanted around Conjure. Everything's just code like a normal buffer. So I'm careful to add anything that isn't a regular buffer
@rahul080327 has done a nice job of adding Vim docs for clj-kondo, in case anyone is interested in trying it: https://github.com/borkdude/clj-kondo/blob/master/doc/editor-integration.md#vimneovim
@dharrigan clj-kondo is already better than joker for my user case, I use it all the time and recommend it.
Better in what ways? I'm also using joker, and curious what the benefits of adding clj-kondo into the mix are
And to clarify, if Iβm on the latest Ale, then it will pull in Joker and Kondo both, if they are installed?
I think my confusion is that I have joker installed but I didnβt explicitly configure ale to use it, it just does. Havenβt tested yet to see if I actually need to include that line or if I get it for free because Ale auto-detects it.
clj-kondo has less false positives because it understand code on some libraries. Also the configuration is more granular. There are only 2 features that I use from joker atm that unused bindings and undeclared vars but those cause a lot of false positives when using libraries like plumatic/schema and cats because of macros.