clojure-emacs / clojure-emacs/clojure-mode
Alignment bug with comments/forms following a closing delimiter
- Lingua principale
- Emacs Lisp
- Stelle
- 1k
- Fork
- 249
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
## Expected behavior
`M-x clojure-align` on the following forms should be a no-op:
```clojure
{:a [123
456
789] :b 10}
(cond foo {:bar 1 ; initialize the Bar
:baz 2} ; and the Baz
quux {})
```
## Actual behavior
The second "column" is pushed farther and farther to the right every time `clojure-align` is called.
```clojure
{:a [123
456
789] :b 10}
=>
{:a [123
456
789] :b 10}
=>
{:a [123
456
789] :b 10}
=>
{:a [123
456
789] :b 10}
```
## Steps to reproduce the problem
Execute `clojure-align` on any hashmap or function defined in `clojure-cond-align-forms`, which has a symbol or comment following a closing delimiter that is on a different line from its opening delimiter:
```clojure
;; this is fine
{:a [1 2] ; comment
}
;; this is also fine
{:a [[1
2] ; comment
3]
}
;; but not this
{:a [1
2
3] ; comment
}
```
The offending delimiter must belong to the second or greater "column" of the alignment
```clojure
;; This is alright
(are [x y z] (= (count y) x (inc z))
[100
200
300] 3 2)
;; This is not
(are [x y z] (= x (count y) (inc z))
3 [100
200
300] 2)
```
## Environment & Version information
### clojure-mode version information
*Include here the version string displayed by `M-x
clojure-mode-display-version`. Here's an example:*
```
clojure-mode (version 5.10.0)
```
### Emacs version
26.2
### Operating system
macOS 10.14
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia con l’implementazione alla base di M-x clojure-align, in particolare con il percorso clojure-cond-align-forms descritto nel report. Riproduci gli esempi in un buffer di Emacs e traccia come vengono misurati i delimitatori di chiusura, i commenti e le colonne di allineamento successive. Il lavoro è completato quando l’allineamento ripetuto è idempotente e tutti gli esempi elencati rimangono invariati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- emacs-lisp
- Ambito
- tooling
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 42/100