This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-05-02
Channels
- # announcements (12)
- # babashka (7)
- # babashka-sci-dev (46)
- # beginners (35)
- # biff (1)
- # calva (4)
- # cider (22)
- # clj-kondo (48)
- # clj-on-windows (4)
- # clojure (132)
- # clojure-europe (161)
- # clojure-germany (1)
- # clojure-nl (2)
- # clojure-uk (5)
- # clojurescript (39)
- # conjure (10)
- # core-typed (1)
- # cursive (48)
- # datalevin (6)
- # datascript (12)
- # datomic (9)
- # emacs (5)
- # events (1)
- # figwheel-main (2)
- # honeysql (7)
- # hyperfiddle (35)
- # improve-getting-started (8)
- # introduce-yourself (4)
- # london-clojurians (1)
- # off-topic (20)
- # podcasts-discuss (1)
- # re-frame (45)
- # reitit (5)
- # releases (2)
- # rum (7)
- # shadow-cljs (20)
- # spacemacs (4)
- # tools-build (58)
- # tools-deps (19)
- # xtdb (56)
It's not a bank holiday here in Belgium but it is where I work in the U.K. so I'm enjoying the sunshine and just back from brunch. Good morning :)
Does bank holiday mean people at the bank have a day off, or a day to celebrate the existence of banks?
When they were created, only banking people are considered worthy of having holidays. I think.
Good morning!
I'm going to try that myself.
For the brave who want to do it, add this to the very beginning of your init.el
(setq user-init-file (or load-file-name (buffer-file-name)))
(setq user-emacs-directory (file-name-directory user-init-file))
This allows you to test a config with
emacs -q -L .emacs.d.corgi -l .emacs.d.corgi/init.el
yeah, I just use symbolic links to create my .emacs.d, which seems to work (tho I lose things like bookmarks unless I copy them over)
I'm using rcm and I didn't want to mess with the links that creates.
I'm trying corgi right now and I like it because it's fast. But I'm spending a lot of time porting some spacemacs key bindings 🙈
@U054UD60U I'm doing similar, and I'd quite like to be able to keep to "standard" spacemacs bindings for the things outide corgi. I'd be interested in seeing your config
smartparens
I can't live without that.
lol true
yes, slurp barf etc. The spacemacs bindings are so deep in my muscle memory, I don't want to relearn ;)
would like to see a list still if it's not too hard to pull it up 🙂 I personally found the spacemacs bindings for structural editing very awkward, but maybe I missed some things
but the L
and H
text objects are fantastic once you get used to them, very vim-ish way of dealing with things, e.g. 2yL
: copy next two forms, dH
delete previous form, etc
I know spacemacs has this thing where when you do a structural editing command it switches to a different mode, which I disliked with a passion. I do this stuff all the time, i don't want to be going in/out of some mode just to slurp.
hmmm, I don't remember that, so maybe either this was fixed or Stockholm syndrom 😉
But chemacs fails for me 😞
End of file during parsing: /Users/philipp.meier/.emacs.chemacs2.d/chemacs.el
❯ git diff chemacs.el
❯
❯ git status
On branch main
Your branch is up to date with 'origin/main'.
nothing to commit, working tree clean
❯ git log -1
commit d53aa5e5e298a4244b70ae59e9d9ba34752c4bbb (HEAD -> main, origin/main, origin/HEAD)
Merge: af5d65c d939b23
Author: Arne Brasseur <[email protected]>
Date: Tue Mar 15 08:51:07 2022 +0100
Merge pull request #37 from dnbz/main
Update
I've linked .emacs.chemacs.d
to .emacs.d
Is that the problem?
starts fine for me on that commit, tried symlinked as well and doesn't make a difference
load-file-name
is nil
in early-init.el
;;; early-init.el --- -*- lexical-binding: t; -*-
(message "Early init %S" load-file-name)
;;=> Early init "/home/arne/.emacs.d/early-init.el"
Ah, "evaling" load-file-name
from within emacs makes no sense.
GNU Emacs 28.1 (build 1, x86_64-apple-darwin18.7.0, NS appkit-1671.60 Version 10.14.6 (Build 18G95)) of 2022-04-22
Oh, that's well possible 🙈
Ok, that fixed it.
Thanks for helping
Do I need to enable "straight" support for corgi? I see weird errors now.
Corgi is built on straight, the example corgi setup contains a bootstrap.el which will set up the necessary prerequisites. This is a bunch of boilerplate I would recommend simply copying over.
copy over to chemacs early-init?
no need to touch anything in chemacs 🙂 , that's just the tool to help you switch between configs
copy bootstrap.el
to the same directory, and in init.el
add (load-file (expand-file-name "bootstrap.el" user-emacs-directory))
`
Basically I'm using this https://github.com/corgi-emacs/corgi/tree/main/sample-config
E.g. SPC
is not bound any more.
I'm removing all cache and elc now 😉
...from the corgi directory
testing my spacemacs profile now as a comparison 😉
I've found my problem 🙂 I had a malconfigured user-keys.el
and the error message from corkey was not too helpful
what was the error message? sounds like a similar case as the chemacs issue where we should guide the user a bit
FYI I did a write up of how I'm thinking about corgi key bindings: https://github.com/corgi-emacs/corgi/issues/23
Exactly, I've fixed it locally and I will submit a PR 😉
I've split the parsing and reloading part, basically
(defun corkey/reload (&optional key-files signal-files)
"Parses the bindings, removes the existing bindinds and then
install the bindings."
(interactive)
(let* ((bindings (corkey/load-bindings key-files signal-files)))
(corkey/remove-bindings)
(corkey/install-bindings bindings)))
What's the workflow working on packages? For now I just had patched the file in straight's cache
you can branch/commit/push right there, you might have to update the git remote if you want ssh, it defaults to http
I tend to remove straight/repos/{corkey,corgi-packages}
and replace them to symlinks to my own local checkouts
once your corkey change has been merged we take the latest hash and put it in corgi-versions.el
in corgi-packages
that's manual so far. I'll probably look into improving some of this workflow stuff, I still find straight a little awkward in this regard.
I love how much joy corgi creates. I've never been a contributor to spacemacs but corgi appears to be so much more accesible.
Do you thing error handling should go to corkey/-read-file
or somewhere higher?
"you can branch/commit/push right there" WDYM? :thinking_face:
Oh, I see!
I think doing the error in -read-file
makes sense, the most important thing is that people get feedback about which file has the issue (ideally full path), bonus points for also giving an indication of where in the file the issue is or what the issue is, but I guess that depends on what you get back from emacs.
This is my spacemacs-smartparens-compatibility binding list atm:
("k"
("s" "Slurp forward" sp-forward-slurp-sexp)
("S" "Slurp backward" sp-backward-slurp-sexp)
("b" "Barf forward" sp-forward-barf-sexp)
("B" "Barf backward" sp-backward-barf-sexp)
("a" "Absord" sp-absorb-sexp)
("c" "Convolute" sp-convolute-sexp)
("t" "Transpose" sp-transpose-hybrid-sexp)
("J" "Join" sp-join-sexp)
("W" "Unrwap" sp-unwrap-sexp)
("p" "Push" sp-hybrid-push-sexp)
("e" "Splice forward" sp-splice-sexp-killing-forward)
("E" "Splice backward" sp-splice-sexp-killing-backward))
hm, any way to change the default ,
leader key, btw?
Copy corgi-keys.el to your Emacs home dir and change it there, it'll get priority over the bundled version
"DEL", I'm using an ergodox keyboard and "SPC" "DEL" are on the right resp. left thumb cluster in my config 😛
I wonder if it would make sense to allow for a symbol instead of a string in the key definition.
haha, true
With a symbol (bindings (global (:leader-project ("j" ...)))
would be possible.
Spacemacs has dotspacemacs-leader-key
and dotspacemacs-major-mode-leader-key
for this.
We already use symbols to denote evil states so that would make the grammar ambiguous (or we figure out some special syntax). But I think the above workaround is fine. It's definitely intended use that people can just override the whole file with their own version, and possibly share those files with others (eg you could publish an ergodox version)
One of the drawbacks if this being "plain data" is that you cannot use functions and composition.
And by having signals people can use that while still customizing which commands/packages they prefer
You can generate that data and pass it to corkey directly. We give you tools to customize at multiple levels while avoiding adding all kinds of special cases
Staring at the code now! wanting to do a s/,/DEL/
basically
The more I look at ELSIP I realise how much better clojure is with restructuring, sane function names and better data type literals.
No, I'm not googling for a clj to elisp translator.
And we're already "cheating" by using / in function names, and that means we can't be included in melpa
uh, why?
"here's a small thing that you can do to make things better" Emacs community: how about no?
It's against their guidelines, your functions have to be named package-foo, so with a dash
well, that works too, if all existing code would adhere to it.
naaa, it's "freeeedom!"
Waiting for @U04V15CAJ to save us once again... We need babashaka but for emacs.
It's all just really silly, when you submit a package it gets nitpicked to death over trivialities like this, and then the next commit you change it all back and nobody cares
Oh, so you always clone "trivial.el", submit it and then adjust ad libitum?
No not really, but I could. Once you're package is in there it'll build every commit, no questions ask
Waiting for the "leftpad" incident on melpa...
Every day that ends in a y is a leftpad incident on melpa. Some people care very little about keeping api compatibility of their packages.
I remember colleagues asking whether it's safe to update cider. In parts it's become much more stable.
And it's why I ultimately quit spacemacs, with so much bagage the chance of breaking a package when upgrading is about 50-50
Same for me. Plus the bloat.
Yes, cider has had some rough times in this regard but recent years it's been much better
I'm so confused now. Switching between clojure, elisp, python and scala within 15min is too much for my poor brain.
Why can't just all language use some sane non-syntax? (thing arg1 arg2 arg2)
is all you need.
> Waiting for @U04V15CAJ to save us once again... We need babashaka but for emacs. #joyridefor vscode For nvim there is fennel which is maybe close enough - SCI could be supported via RPC. For emacs, we could have dynamic native modules and expose SCI, but it seems a bit painful to develop those. My emacs config is like the washing machine room in my house: I have the paint ready to finally colour the walls, but I'd rather spend as little time in there as possible. I have been managing my elpa dependencies in a git repo for a decade now and this primitive method worked fine.
I feel you 😉
Too many things to finish in my house
for all the pain of emacs - there have only been 2 lisps I've ever been able to get real work done in - clojure and emacs lisp. All the others I failed at some point b/c it required me to write a library to do something like parse json and that was considered trivial b/c I grokked all of SICP beforehand or something.
I like that I've used the term "software archaeology" maybe 10 years ago and it seams to become more widespread.
it is from Vernor Vinge in 1999 https://en.wikipedia.org/wiki/A_Deepness_in_the_Sky