There is a known issue with the indentation of
julia-mode in Emacs, giving your code formatted like this
import Base: * a = 1
This is because Emacs believes the first line ends with a hanging operator
*, so considers the second line to be the rest of the same statement. This is annoying for me since I often overload arithmetic operators. I found a quick and dirty workaround to disable indentation for any line following
using, by adding the following code to my Emacs init file:
(defun my-julia-indent-hanging (orig-fun &rest args) (if (julia-following-import-export-using) 0 (apply orig-fun args))) (advice-add 'julia-indent-hanging :around #'my-julia-indent-hanging)
I’m using Melpa package version julia-mode-20220418.809. It works like this:
julia-mode.el from the package has a function
julia-indent-hanging to calculate the indent of a line. I modify the behavior of the function with an “advice” (like a function decorator in Python) which says that I’ll first run the function
julia-following-import-export-using (also defined in
julia-mode.el) to see if the current line follows a import/export/using statement. If so, the indentation 0 is returned, otherwise the original function
julia-indent-hanging is run to calculate the indentation amount.
My workaround is very simplistic, but is OK for my use cases since I never break up an import/export statement into multiple lines.