For some reason I don’t understand, I thought I might try out emacs again 16 years after I decided I hate it. I like using hot keys and shortcuts more now, so maybe that’s it.
When I looked at the emacs page, I learned that there are different “flavors” (GNU emacs, Xemacs, etc.). What do folks use and is there really a noticeable difference? Does the julia emacs extension even work with other versions?
Aside from the Julia extension, are there any others that make learning (especially!) or using emacs easier?
I use doom emacs with emacs 29.1.90 on macOS. Julia works well with the packages julia-ts-mode, julia-repl, and lsp-mode. This is based on the excellent work by @Ronis_BR , @Tamas_Papp and others. Please take a look at this repo for notes and a doom config which works well on macOS.
I’m also interested in seeing if people are using different things. I have been using the basic gnu/emacs with very few modifications for around 2 years and I still consider myself pretty awful at it but I prefer it to using bloated text editors. On Linux, by the way.
I suspect it doesn’t work 100%. I am using eglot and eglot-jl as a language server but I only activate it manually (because it’s heavy) with the M-x eglot command.
I used to use Emacs on Windows about 10 years ago. It wasn’t the most natural integration, but it was ok. But I haven’t touched a Windows system since then.
When I paste more than 10 lines of code into the julia-repl shell, the screen flickers for a few seconds before the pasted text settles down. Is this a common problem people have seen?
I’ll take the opportunity to plug my own Julia IDE for Emacs project, Julia Snail. It uses a network bridge to make Emacs and Julia talk to each other (like SLIME for Common Lisp and CIDER for Clojure). This lets it do useful things like evaluate code in Julia buffers in the context of the current module. It also has completion and code navigation support, without requiring LSP (I was going for minimal dependencies and configuration).
No Windows support, alas, as Windows terminal emulation in Emacs is dicey. Some day, Snail will get a native Elisp Julia REPL, but that day is far off.
This invokes the function julia-repl-set-terminal-backend once when the library julia-repl is loaded. Adding julia-repl-set-terminal-backend to the julia-mode-hook makes Emacs invoke it each time you activate julia-mode.
Install scoop first in PowerShell.
Then do scoop install emacs in PowerShell. scoop install julia install Julia.
And now it is all about to correctly setup everything in $HOME/.emacs.d/init.el to install the correct packages and set them up correctly.
Even better is of course to activate Windows Subsystem for Linux (WSL), install there Linux or Archlinux, and then you have sudo apt or pacman to setup everything for you as if you were in a Linux machine (instead of Windows).
I’m using julia-ts-mode with doom emacs and got lsp and treesitter to work but I can only send code to the repl line by line or if I mark code in visual mode. Is there a way to send a full function or a begin/end block at once?
Thank you! I’m using julia-repl and wrote a little extension to automatically parse julia blocks to regions
(sorry cannot get syntax highlighting to work)
EDIT: do blocks were not correctly parsed
EDIT2: moved to a gist where I keep fixing problems: