Morning
👋
Morning
Morning!
Maidin mhaith
Good morning!
good morning
Morning!
buenos dias!
morning!
morning
morning
looking back on the emacs combos above, I realise that even after 25 years of use I'm still an emacs n00b
me too, and I strive to stay one as I am quite fine with using only a few features, it already makes emacs worthwhile for me
I do believe that emacs rewards investment
(unlike many other IDEs I've had a go at over the years, like say VisualAge)
yep, it works for pretty much anything too (at least the stuff I am exposed to)
it's getting really better lately as well, I think the changes in maintainers helped quite a bit
while frustrated with emacs instability, i tried VSCode a few months ago... i lasted a couple of weeks before the general UI inconsistency frustration got to me, and i put some effort into trying different emacs builds until i found something more stable. now everything is a buffer again, helm is my single route to finding stuff, and i'm much happier
I solved stability issues a long time ago moving to straight.el personally
I tend also to slim down the dependencies more, or use more lightweight ones (like from helm/ivy to consult/vertico/embark/orderless)
you are showing your Age there, and not just visually 😉
also having the whole conf on a single file is quite nice/portable
I like the idea of VSCode, but somehow I find emacs more ergonomic, and you're not actually typing in a browser with more latency
Also I find the colors in VSCode a bit "toy" like. I'm sure you can change them.
it's a much better editor for beginners, among other things
I wouldn't throw emacs at someone starting up their journey into programming
(happened to me, kind of)
I learned (just enough) emacs because there was no better environment for clojure at the time ;)
I use the GitHub Dark theme in VS Code. If it's available in whatever editor you use, I can recommend.
got introduced to it at uni, with java 1.1 (I think), a great combo heh
not sure which one I hated the most originally
@pez what is the exact name of the extension?
I still edit Java in emacs regularly, with manual compiles on the command line for "feedback"...
GitHub theme maybe? I'm afk.
I tried the Java Tools in VSCode and omg, they are quite good
@borkdude I guess now it's not so bad with lsp
@pez found it, thanks
I don't know what it is, but emacs just looks better to me, the rendering
oh @mpenet i hadn't actually seen straight.el before, now i've got some stuff to play with
instead of dealing with various kinds of package managers, I use package.el and check everything into a git repo :P. This has worked for me since 2013 or so
I have seen various package manager things come and go since then
of course I don't score high on the dotfiles appreciation index
straight.el uses use-package, so you don't have to change anything
it will fetch the repos from the source and build them instead of relying on packages from melpa (it can read melpa metadata tho)
works with elpa & co too
then the big win is the version pinning
Mock me again and I'll beat you with my false teeth
you don't have that with package.el
😘
hence the breakage
from there you can use this lock file on all your machines and have an env that's reproducible without having to carry all the dependencies around
it's quite neat
plus other stuff (like easy upgrades/rollback & co)
cool, I should try it when my blunt workaround will upset me one day
if you use use-package it's essentially copying a block of 10 lines and restarting emacs to make it work
hmm, a few years ago a colleague of mine refactored our codebase where a lot of functions received the entire system as an argument. I felt that this wasn't the correct approach, it felt like "too much power". But I didn't have a good argument to back it up, except that I was inspired by Haskell at the time to write functions with types that made sense to that function (only the relevant bits as the input, nothing more). Turns out this was in the component documentation all along: https://github.com/stuartsierra/component/blob/master/README.md#no-function-should-take-the-entire-system-as-an-argument 🤦
This is a form of coupling called "stamp coupling".
explain
https://en.wikipedia.org/wiki/Coupling_%28computer_programming%29#Types_of_coupling > Stamp coupling occurs when modules share a composite data structure and use only parts of it, possibly different parts (e.g., passing a whole record to a function that needs only one field of it). > In this situation, a modification in a field that a module does not need may lead to changing the way the module reads the record.
i went from submodules to versioning everything to package.el to this, and my emacs conf is now basically a single conf file + the lock file
but it's not a big deal, it works fine actually ;)
@mpenet that sounds neat. I'm still in my "emacs childhood" using prelude. this loads packages on demand.
I wonder if @bozhidar has some ideas to adopt use-package or straight.el in that
he uses use-package for sure, not sure about straight
It's on my todo to use use-package
in Prelude, although for the end users there's no problem to use it even today.
Prelude using use-package
internally won't really improve anything for them and might even make a bit more obscure the order in which the package initialization happens. Okay, it might increase a bit the boot time, but I start Emacs like once in a month, so I guess it's not a big deal for most people. 😄
@bozhidar is there a way to pin versions on prelude?
I am also using Prelude (combined with use-package
). Previously I was using Doom, which is built on top of straight.el
https://prelude.emacsredux.com/en/latest/installation/#pinning-packages
if you need inspiration for straight.el + use-package https://github.com/mpenet/emax/
I never needed to pin anything, but it's doable.
to be honest, I also never pin
I just have my giant blob of git repo with emacs packages as backup when I want to roll back
pinning looks like this in straight https://github.com/mpenet/emax/blob/master/straight/versions/default.el you can generate this via a command inside emacs when you're happy with your setup
I might be doing it wrong, but my emacs config has plenty of
(prelude-require-package 'foo)
(use-package foo
...)
my slightly out of date org-mode version: https://github.com/otfrom/otfrom-org-emacs (uses use-package)
should work with an empty elpa directory. It downloads and compiles everything from elpa/melpa/melpa-stable it needs. I sometimes blow away my elpa dir if things like macro changes make the compilation dirty
use-package should actually speed up emacs start up time as you can defer the loading of lots of things until you need them
so, what is the advantage of straight.el over using package.el? Just a different kind of pinning?
you cannot select the version of your packages with melpa, you either get "stable" or what's in regular melpa. straight will fetch from git to your machine, package.el will fetch an archive. Then straight will build packages from sources, could be latest or could be whatever ref you like to use from the "lock file". Then there are a few utils to make life easier with updates/rollback & co. But the readme makes a better sales pitch than me: https://github.com/raxod502/straight.el#features 🙂
ah, so pinning to a version rather than to a package repo (I think)
with straight it's pin to a git ref
so sort of like git in deps.edn then
yes
cool. I can see some advantages to that
slightly annoying that it uses :straight
rather than :ensure
to fetch things in use-package, but that is just a search and replace
usually you don't have to use :straight at all
it will read the metadata from melpa to find where to get the repo from
you only use :straight when it's not on melpa or when the name differs from the package
(almost never)
I only used it a couple of time to fetch bleeding edge stuff that was not on any repo yet
oh but that's because I set straight-use-package-by-default to true
so I never have to do it
ah, and that does the downloading for you automagically?
morning #clojure
yes
and building
it's a bit like nix/guix but scoped to emacs
Sorry, this is an Emacs channel now
This is impressive: https://djblue.github.io/portal/ Just paste some EDN or Transit in there and explore stuff
It can even view "CSV" 😂
I love you too
fans of @djblue are in for a pleasant defn
surprise