clojure-emacs / clojure-emacs/clojure-mode

Incorrect indentation of `core.match/match` macro

Offen
#602 0 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Emacs Lisp
Sterne
1k
Forks
249
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

## Expected behavior

`clojure-mode` should indent `match` forms (from [`core.match`](https://github.com/clojure/core.match)) the same as `M-x cider-format-region` or `M-x lsp-format-region`.

For example:
```clojure
(doseq [n (range 1 101)]
(println
(match [(mod n 3) (mod n 5)]
[0 0] "FizzBuzz"
[0 _] "Fizz"
[_ 0] "Buzz"
:else n)))
```

## Actual behavior

`clojure-mode` indents `match` forms incorrectly.

```clojure
(doseq [n (range 1 101)]
(println
(match [(mod n 3) (mod n 5)]
[0 0] "FizzBuzz"
[0 _] "Fizz"
[_ 0] "Buzz"
:else n)))
```

## Steps to reproduce the problem

Use the code from the above example in a Clojure(Script) file and run `indent-for-tab-command` using TAB.

## Environment & Version information

### clojure-mode version
```
clojure-mode (version 5.13.0)
```

### Emacs version
27.1

### Operating system
macOS 11.5.2 (Big Sur)

## Commentary

I'm happy to submit a PR with relevant indentation tests to fix this, but just wanted to make sure it's something that should be added to `clojure-mode`.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginnen Sie damit, das Beispiel in einer Clojure(Script)-Datei nachzustellen und indent-for-tab-command mit TAB auszuführen. Vergleichen Sie das Ergebnis mit der für cider-format-region und lsp-format-region gezeigten Formatierung; fügen Sie die vom Melder erwähnten relevanten Einrückungstests hinzu und betrachten Sie das Issue als erledigt, wenn match-Formen die erwartete Ausrichtung erhalten.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
clojure, emacs-lisp
Bereich
tooling
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.