calva

frankleonrose 2025-08-15T05:06:35.522549Z

I want to bump the version of cider/cider-nrepl to 0.57.0. I tried adding that version to :deps in project deps.edn and ~/.clojure/deps.edn to no effect. Is there an option to set the version or do I have to override the jack in command entirely?

pez 2025-08-15T06:41:40.066319Z

Jack-in produces a command line which injects configured versions the nrep tooling, effectively overriding what is configured in deps.edn. There is currently no way to disable this. But you can change the configuration via the setting calva.jackInDependencyVersions. See: https://calva.io/customizing-jack-in-and-connect/#jack-in-dependency-versions

frankleonrose 2025-08-15T12:32:58.677289Z

Thanks! Looking forward to being rid of https://github.com/clojure-emacs/cider-nrepl/issues/936 by going to 0.57.0.

pez 2025-08-15T12:36:22.103189Z

Thanks for heads up. We should update the defaults in Calva.

πŸ‘ 1
JR 2025-08-15T16:00:41.506459Z

Some of the Calva Paredit keybindings conflict with Ubuntu's window manager keybindings. I remapped the paredit bindings to the keypad. (I didn't want to disable the Gnome keybindings since some are useful to me.) What do other people do about these keybinding conflicts? (My experience in the thread)

JR 2025-08-15T16:02:12.815409Z

Problem keybindings I noticed (Gnome mapping in parens) transpose - ctrl+alt+t (new terminal) barfSexpBackward - ctrl+shift+alt+left (switch workspace left) backwardDownSexp - ctrl+alt+up (switch workspace up) backwardUpSexp - ctrl+alt+down (switch workspace down) I could find new bindings for these in VSCode, but that made it even harder to remember the keybinding patterns

JR 2025-08-15T16:03:08.463579Z

What I did:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚           Forward list nav                                   β”‚
                 β”‚                                                              β”‚
                 β”‚ Forward Up:   Numpad9                                        β”‚
                 β”‚ Forward Down: Numpad3                                        β”‚
                 β”‚ Forward Up Select:   Shift+Numpad9                           β”‚
                 β”‚ Forward Down Select: Shift+Numpad3                           β”‚
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚ Backward      β”‚                                                              β”‚ Forward       β”‚
 β”‚ list          β”‚                                                              β”‚ list          β”‚
 |               |                                                              |               | 
 β”‚ Move: Numpad4 |                                                              β”‚ Move: Numpad6 |
 β”‚ Select: Shift+Numpad4                                                        β”‚ Select: Shift+Numpad6
 β”‚ Barf Backward: Shift+Alt+Numpad6                                             β”‚ Slurp Forward: Alt+Numpad6
 | Slurp Backward: Shift+Alt+Numpad4                                            | Barf Forward: Alt+Numpad4 
 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                 β”‚           Backward list nav                                  β”‚
                 β”‚                                                              β”‚
                 β”‚ Backward Up:   Numpad7                                       β”‚
                 β”‚ Backward Down: Numpad1                                       β”‚
                 β”‚ Backward Up Select:   Shift+Numpad7                          β”‚
                 β”‚ Backward Down Select: Shift+Numpad1                          β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

JR 2025-08-15T16:03:29.423789Z

- movement keys align with direction (eg 7 is backward up and is the left upper key on the keypad) - slurp/barf keys align with cursor movement, shift changes to left part of the structure - holding shift does selection for movement I find this setup easier to memorize, but it does require a 101 key keyboard.

JR 2025-08-15T16:07:11.525009Z

Aside: to make the keypad recognize Shift+NumpadN, I had to go into Gnome Tweaks and turn on "Shift with numeric keypad keys works as in MS Windows", otherwise the shift key changed the keypad to the arrow keys (which had other conflicts) And in comments the calva select is turned off due to the commands when. Because cursorWordEndRightSelect and cursorWordLeftSelect aren't set, the 4 and 6 are actually sent (overwriting your text). Just set Shift+Numpad4, ... for cursorWordLeftSelect... to fix this

michaelwhitford 2025-08-15T16:36:30.838779Z

I remapped using ; as a chord key for most of those conflicting keys. Just an example "; RightArrow" is Slurp Forward for me. I use #_ and (comment) for most comments so really don't miss the ; key, though I can hit it twice to get an actual semi-colon.

JR 2025-08-15T18:46:11.096399Z

Oh, that's a good idea! It could actually be anything unused too, like the eject key or something. Years of using emacs has made me a little wary of chords in other editors, but there is value in having everything be close to home row.

seancorfield 2025-08-15T17:00:27.716379Z

Doc issue and Q about jack-in dependency versions: I searched for calva jack in dependency and ended up here: https://calva.io/jack-in-guide/ -- which says "If you came here to find out how to configure the versions of the dependencies that Calva Jack-in injects, see Customizing Calva - Jack-in Dependency Versions." and links to https://calva.io/customizing/#jack-in-dependency-versions but that's no longer correct. Looks like that was moved to https://calva.io/customizing-jack-in-and-connect/#jack-in-dependency-versions at some point. And now my Q: that says to use "nrepl" and "cider-nrepl", but "cider/piggieback". As coordinates, nrepl is fine -- it's actually nrepl/nrepl -- and cider/piggieback is fine. But cider-nrepl is not a valid coordinate since it is treated as cider-nrepl/cider-nrepl which doesn't exist: the correct coordinate is cider/cider-nrepl. So... are the docs actually correct here? Are "nrepl" and "cider-nrepl" special strings that Calva recognizes and maps to real coordinates, or should the config have "cider/cider-nrepl" instead?

seancorfield 2025-08-18T15:00:39.148499Z

@pez point_up::skin-tone-2

πŸ‘€ 1
pez 2025-08-18T15:13:34.060629Z

Thanks! It’s a bit confusing, yes, and we could improve the docs. But the settings to use are actually, the non-qualified keys. The code looks like so:

export enum JackInDependency {
  'nrepl' = 'nrepl',
  'cider-nrepl' = 'cider-nrepl',
  'cider/piggieback' = 'cider/piggieback',
}

const NREPL_VERSION = () => getConfig().jackInDependencyVersions['nrepl'],
  CIDER_NREPL_VERSION = () => getConfig().jackInDependencyVersions['cider-nrepl'],
  PIGGIEBACK_VERSION = () => getConfig().jackInDependencyVersions['cider/piggieback'];

const cliDependencies = () => {
  return {
    'nrepl/nrepl': NREPL_VERSION(),
    'cider/cider-nrepl': CIDER_NREPL_VERSION(),
  };
};

...
I think it dates back to when it was fine with unqualified symbols, and it’s disruptive to change the settings keys. Issues welcome for both things.

seancorfield 2025-08-18T15:17:34.513449Z

So... nrepl and cider-nrepl... but cider/piggieback instead of just piggieback? 🀣

pez 2025-08-18T15:30:05.400329Z

I have no idea why that happened. πŸ˜ƒ

pez 2025-08-18T18:34:57.642949Z

Well, piggieback never has had a maven coordinate without namespace. So there’s that. Neither has cider-nrepl, I think, but anyway.