Skip to content

Commit

Permalink
GitHub Issue #76 - fix bug with ns require-macros inside reader condi…
Browse files Browse the repository at this point in the history
…tional (#79)
  • Loading branch information
oakmac authored Sep 5, 2024
1 parent e92db72 commit 1e1dc47
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 7 deletions.
14 changes: 7 additions & 7 deletions lib/standard-clojure-style.js
Original file line number Diff line number Diff line change
Expand Up @@ -2366,11 +2366,11 @@

if (numRequireMacros > 0) {
const cljsPlatformRequireMacros = filterOnPlatform(ns.requireMacros, ':cljs')
const requireMacrosWrappedInReaderConditional = arraySize(cljsPlatformRequireMacros) === numRequireMacros
const wrapRequireMacrosWithReaderConditional = arraySize(cljsPlatformRequireMacros) === numRequireMacros
let rmLastLineCommentAfter = null

let rmIndentation = ' '
if (requireMacrosWrappedInReaderConditional) {
if (wrapRequireMacrosWithReaderConditional) {
outTxt = strConcat(outTxt, '\n')
outTxt = strConcat(outTxt, ' #?(:cljs\n')
outTxt = strConcat(outTxt, ' (:require-macros\n')
Expand Down Expand Up @@ -2402,15 +2402,15 @@
rmIdx = inc(rmIdx)
}

if (!requireMacrosIsLastMainForm && !requireMacrosWrappedInReaderConditional) {
if (!requireMacrosIsLastMainForm && !wrapRequireMacrosWithReaderConditional) {
outTxt = strConcat(outTxt, ')')
} else if (!requireMacrosIsLastMainForm && requireMacrosWrappedInReaderConditional) {
} else if (!requireMacrosIsLastMainForm && wrapRequireMacrosWithReaderConditional) {
outTxt = strConcat(outTxt, '))')
} else if (requireMacrosIsLastMainForm && !requireMacrosWrappedInReaderConditional) {
} else if (requireMacrosIsLastMainForm && !wrapRequireMacrosWithReaderConditional) {
outTxt = strConcat(outTxt, '))')
trailingParensArePrinted = true
} else if (requireMacrosIsLastMainForm && requireMacrosWrappedInReaderConditional) {
outTxt = strConcat(outTxt, '))))')
} else if (requireMacrosIsLastMainForm && wrapRequireMacrosWithReaderConditional) {
outTxt = strConcat(outTxt, ')))')
trailingParensArePrinted = true
}

Expand Down
33 changes: 33 additions & 0 deletions test_format/ns.eno
Original file line number Diff line number Diff line change
Expand Up @@ -1123,3 +1123,36 @@
[aaa.bbb]
[ccc.ddd])) #_ #{"bugger"}
--Expected

# require-macros wrapped in reader conditional, last main form

> https://github.com/oakmac/standard-clojure-style-js/issues/76

--Input
(ns com.example.my-app
#?(:cljs (:require-macros [bar :refer [baz]])))
--Input

--Expected
(ns com.example.my-app
#?(:cljs
(:require-macros
[bar :refer [baz]])))
--Expected

# require-macros wrapped in reader conditional, not last main form

--Input
(ns com.example.my-app
(:require [aaa])
#?(:cljs (:require-macros [bar :refer [baz]])))
--Input

--Expected
(ns com.example.my-app
#?(:cljs
(:require-macros
[bar :refer [baz]]))
(:require
[aaa]))
--Expected

0 comments on commit 1e1dc47

Please sign in to comment.