emacs

dpsutton 2025-05-24T17:13:35.997779Z

i’m trying to try out clojure-ts-mode but it is marked incompatible with my current setup as it requires emacs 30. I’m using brew with emacs-mac and seeing

brew upgrade emacs-mac
Warning: railwaycat/emacsmacport/emacs-mac emacs-29.1-mac-10.0 already installed
which is annoying. Does anyone know if i’m missing something to jump to emacs 30? Seems it came out in feb so i’m a bit surprised

bozhidar 2025-06-13T08:01:36.578729Z

Hmm, that's strange. I would have assumed with native compilation enabled everything would be faster.

bozhidar 2025-06-13T08:02:46.896209Z

I didn't bother to try Emacs-plus myself, as the standard build was fine for me, and the only difference between the two were a handful of compilation options.

Krishnansh Agarwal 2025-06-13T13:57:38.963059Z

Nice! Also Emacs Plus throw some wierd error paired with Prelude Emacs.

Krishnansh Agarwal 2025-06-13T04:55:10.486079Z

Emacs-Plus is slower on my MBP M3, compared to EmacsForOsx

Krishnansh Agarwal 2025-06-13T04:55:37.523839Z

@dpsutton

practicalli-johnny 2025-05-24T17:32:03.214389Z

What is emacs-mac ? No results on brew.sh. If its https://bitbucket.org/mituharu/emacs-mac/src/master/ then its only Emacs 29 packages so far it seems I have always used https://github.com/d12frosted/homebrew-emacs-plusfor MacOS and it always worked very well. Edit: I guess its https://github.com/railwaycat/homebrew-emacsmacport and you have the latest release of it. Seems that project also stopped at 29.x (nearly two years ago)

👍 1
oλv 2025-05-24T17:41:01.153369Z

emacs-mac is a native mac fork of emacs

practicalli-johnny 2025-05-24T17:41:18.251179Z

There is an issue about upgrading to emacs 30 if you are attached to emacs-mac (although they give a lot of caveats https://github.com/railwaycat/homebrew-emacsmacport/issues/390

oλv 2025-05-24T17:42:13.459049Z

the microsoft github repo is just the brew packaging, emacs-mac upstream has commits in 2025 fwiw

practicalli-johnny 2025-05-24T17:42:23.508039Z

Ah, the first link I found was the upstream and the second was the tap that in the original post. Emacs plus has always been up to date and very stable for me for quite some time. I didnt miss any Mac specific features.

oλv 2025-05-24T17:44:56.447749Z

emacs-mac is really nice as it has smooth scrolling, trackpad integration (e.g hard click to lookup word in inline dictionary) and other macOS niceties

oλv 2025-05-24T17:45:19.298509Z

but it tends to lag a few months behind upstream emacs 🤷‍♂️

dpsutton 2025-05-24T17:47:31.517299Z

and normally it’s not super important to upgrade. but i guess tree-sitter is 30+? or perhaps natively in there after 30?

practicalli-johnny 2025-05-24T17:53:10.490849Z

There were noticable changes to Treesitter in Emacs 30 which I assume clojure-ts-mode has now adopted. To use Emacs 29 I guess you would have to try an earlier version of clojure-ts-mode (but I assume that is not what is preferred)

oyakushev 2025-05-24T18:24:13.333079Z

@dpsutton You have several options: • Install emacs-mac from HEAD, not the latest tagged release, e.g. brew install emacs-mac --with-native-compilation --HEAD . This will install Emacs 30. • I personally switched to emacs-plus (https://github.com/d12frosted/homebrew-emacs-plus). It is a more "pure" Emacs distro. Most of the stuff I liked emacs-mac for is already in the upstream or not very important to me (e.g. swiping between buffers, or window expose mode).

dpsutton 2025-05-24T18:25:11.019199Z

eMacs plus sounds just what I need. I like smooth scrolling and don’t care about trackpad gestures. Thanks!

👍 2
oyakushev 2025-05-24T18:25:38.370919Z

Do you use ligature fonts like Fira Code?

dpsutton 2025-05-24T18:26:21.914499Z

They are nice but not required. I think Fira code with ligatures is my current but I don’t think it is something I would lament losing

oyakushev 2025-05-24T18:27:18.114259Z

Emacs-plus supports ligatures just fine, but you would need to explicitly install ligature package for them to work. I have this in my init.el now:

(use-package ligature :ensure t :demand t
  :config
  (ligature-set-ligatures
   'prog-mode '("www" "**" "***" "/*" "/**" "*/" "::"
                ":::" ":=" "!!" "!=" "!==" "-}" "---" "----" "-->" "->" "->>"
                "-<" "-<<" "-~" "#{" "#[" "##" "###" "####" "#(" "#?" "#_"
                "#_(" ".-" ".=" ".." "..." "?=" "??" ";;"
                "/=" "/==" "/>" "//" "///" "&&" "||" "||=" "|=" "|>" "^=" "$>"
                "++" "+++" "+>" "=:=" "==" "===" "==>" "=>" "=>>" "<="
                "=<<" "=/=" ">-" ">=" ">=>" ">>" ">>-" ">>=" ">>>" "<*"
                "<*>" "<|" "<|>" "<$" "<$>" "<!--" "<-" "<--" "<->" "<+"
                "<+>" "<=" "<==" "<=>" "<=<" "<>" "<<" "<<-" "<<=" "<<<"
                "<~" "<~~" "</" "</>" "~@" "~-" "~>" "~~" "~~>" "%%"))
  (add-hook 'prog-mode-hook 'ligature-mode)
)

oyakushev 2025-05-24T18:28:30.178289Z

On the plus (hehe) side, as you can observe, you specify all desired ligatures explicitly, which means you can drop the annoying ones. For example, Fira has a ligature for [:, so any time I write something like [:foo] in Clojure, it used to be rendered all skewed.

dpsutton 2025-05-24T18:29:01.746959Z

Oh weird. I haven’t noticed that one the

oyakushev 2025-05-24T18:30:14.396379Z

OK, now I'm not sure it was [: , but there certainly are a few annoying ones that break when writing Clojure.

respatialized 2025-05-24T19:28:56.320519Z

https://emacsformacosx.com/ I switched from the brew-based versions to this not too long ago. I found I had to jump through annoying hoops to do things like have a basic Finder icon and this one is better integrated with the OS and easy to install. I haven't yet upgraded to emacs 30 even though it offers a build for it - might test it out today.

oyakushev 2025-05-24T19:30:33.222969Z

I'm not sure that build has native compilation yet, and that one is pretty huge to me.

respatialized 2025-05-24T19:30:45.335819Z

it does, I use straight.el extensively

respatialized 2025-05-24T19:31:49.690819Z

I was incorrect, I was confusing byte compilation and native comp

oyakushev 2025-05-24T19:31:58.236959Z

Does straight.el require native compilation? I'm not sure I see the connection

oyakushev 2025-05-24T19:32:01.672709Z

Ah

respatialized 2025-05-24T19:32:34.603099Z

https://github.com/caldwell/build-emacs/issues/107

respatialized 2025-05-24T19:53:41.779839Z

https://github.com/jimeh/emacs-builds/releases/tag/Emacs-30.1 I just installed this build quite seamlessly - going to see if it works better than my previous build.

oyakushev 2025-05-24T20:03:47.437559Z

I think this one is based on mituharu fork too, like emacs-mac.

Krishnansh Agarwal 2025-05-25T05:29:11.144419Z

Just install the Emacs from emacsforosx, it is 30.1 and it works really fast!

bozhidar 2025-05-26T10:38:58.221339Z

In case anyone's wondering why clojure-ts-mode requires Emacs 30 - Tree-sitter support in Emacs 29 was somewhat buggy I decided not to inflict the potential issues on anyone. That's always the problem with major technological shifts - the beginnings are quite bumpy. We've discovered a few problems in Emacs 30 as well, but nothing very painful.