taylanbayi...@gmail.com (Taylan Ulrich "Bayırlı/Kammer") writes:
> Emacs will use 2 spaces when the symbol (e.g. sha256 in this case) has > its 'scheme-indent-function' property set, and 1 space otherwise. So > you get > > (let (...) > foobar) ;two spaces because 'let has its 'scheme-indent-function > ;set to 1 (meaning *one* argument is "special", here the > ;list of bindings) > > and > > (display > (string-append > foobar > quux)) ;one space each because they're plain functions and have > ;no 'scheme-indent-function property set > > Under Guix's sources, the .dir-locals.el file contains expressions of > the form (put 'foo 'quux value), which insert properties into symbols. > (Here the 'foo symbol gets its 'quux property set.) Symbols appearing > there, like for instance 'with-store or 'modify-phases or 'substitute* > should probably have their arguments 2-space indented, and others > 1-space, since that's what Emacs will do automatically. > > By the way, shall you put a newline directly before the "special" > argument of such a form, e.g. the bindings-list of a let expression, > then you use 4 spaces for the "special" argument: > > (let > (...) > foobar) > > (modify-phases > %standard-phases > (replace 'foo bar) > ...) > > And also, as you might have noticed, it's mostly macros that get their > 'scheme-indent-function set. I don't know if this rule is enforced > under Guix. I sent off my mail in kind of a hurry there. I should clarify that I was merely assuming that Emacs's default behavior would be desirable to imitate in manual formatting, because otherwise it's pretty annoying for Emacs users who will constantly have to be careful not to cause whitespace changes due to Emacs's automatic behavior. (But it's also otherwise sensible, what Emacs does.) The higher-ups shall say the final word. :-) Taylan