Open
Description
I think the rules for margin comments are causing some confusion in the related Standard Clojure Style discussion:
Problem
The Clojure Style Guide’s rules for margin comments states:
- Write margin comments with one semicolon.
- Avoid using those in situations that would result in hanging closing parentheses.
But the given example seems to break the second rule:
(defn foo [x]
x ; I'm a line/code fragment comment.
)
Proposal
The example below from @yuhan0 follows these rules— by not expecting an inline comment to directly follow its referent expression (AST-wise):
(defn classify-squares [n]
(->> (range n) ; generate a bunch of numbers
(map #(* % %)) ; calculate their squares
(group-by even?))) ; and sort them by parity
This seems more conventional than the other example, which I actually haven’t seen before.
Rationale
One way to formalize this is to treat margin comments as actual sidenotes:
- Treat anything after an inline semicolon
;
as “in the margin”. - Gather trailing parentheses by ignoring anything in the margin.
Metadata
Metadata
Assignees
Labels
No labels