Skip to content

Commit 19cde70

Browse files
committed
Improve pretty-printing of namespaces
This makes the pretty-printed namespace form more in line with the clojure style guide. Specifically we go from: ``` (ns foo.bar (:require [this.library :as lib])) ``` To: ``` (ns foo.bar (:require [this.library :as lib])) ``` This commit closes clojure-emacs/clj-refactor.el#459
1 parent 3c7b04a commit 19cde70

File tree

6 files changed

+24
-21
lines changed

6 files changed

+24
-21
lines changed

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22

33
## Unreleased
44

5+
* [clojure-emacs/clj-refactor.el#459](https://github.com/clojure-emacs/clj-refactor.el/issues/459): `clean-ns` should conform to the style guide: `(:require` in the ns form should be followed by a newline.
56
* [#294](https://github.com/clojure-emacs/refactor-nrepl/pull/294): Properly skip uneval nodes when looking for the first/last sexp
67
* From now on, if you set the `clojure.tools.namespace.repl/refresh-dirs`, files outside said `refresh-dirs` won't be analyzed, resulting in safer, more efficient analysis.
78

9+
810
## 2.5.1 (2021-02-16)
911

1012
### Bugs fixed

src/refactor_nrepl/ns/pprint.clj

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
(defn pprint-require-form
3838
[[_ & libspecs]]
39-
(print "(:require ")
39+
(print "(:require\n")
4040
(dorun
4141
(map-indexed
4242
(fn [idx libspec]

test/resources/artifacts_pprinted

+12-11
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
(ns refactor-nrepl.artifacts
2-
(:require [clojure
3-
[edn :as edn]
4-
[string :as str]]
5-
[clojure.data.json :as json]
6-
[clojure.java.io :as io]
7-
[nrepl
8-
[middleware :refer [set-descriptor!]]
9-
[misc :refer [response-for]]
10-
[transport :as transport]]
11-
[org.httpkit.client :as http]
12-
[refactor-nrepl.externs :refer [add-dependencies]])
2+
(:require
3+
[clojure
4+
[edn :as edn]
5+
[string :as str]]
6+
[clojure.data.json :as json]
7+
[clojure.java.io :as io]
8+
[nrepl
9+
[middleware :refer [set-descriptor!]]
10+
[misc :refer [response-for]]
11+
[transport :as transport]]
12+
[org.httpkit.client :as http]
13+
[refactor-nrepl.externs :refer [add-dependencies]])
1314
(:import java.util.Date))

test/resources/ns1_cleaned_and_pprinted

+5-7
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,11 @@
88
:name com.domain.tiny
99
:extends java.lang.Exception
1010
:methods [[binomial [int int] double]])
11-
(:require [clojure data edn xml
12-
[instant :as inst :reload true]
13-
[pprint :refer [cl-format formatter get-pretty-writer]]
14-
[string :refer :all :reload-all true]
15-
[test :refer :all]
16-
[walk :refer [postwalk prewalk]]]
17-
clojure.test.junit)
11+
(:require
12+
[clojure data edn xml
13+
[pprint :refer [cl-format formatter get-pretty-writer]]
14+
[walk :refer [postwalk prewalk]]]
15+
clojure.test.junit)
1816
(:import [java.io Closeable FilenameFilter PushbackReader]
1917
[java.util Calendar Date Random]
2018
[refactor.nrepl SomeClass$InnerClass$InnerInnerClassOne SomeClass$InnerClass$InnerInnerClassTwo]))

test/resources/ns_with_gen_class_methods_meta_clean.clj

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@
44
^:test [bar [String] String]
55
^{:other "text"} [baz [String] String]]
66
:name Name)
7-
(:require [clojure.pprint :refer [fresh-line]]))
7+
(:require
8+
[clojure.pprint :refer [fresh-line]]))

test/resources/ns_with_lots_of_meta_clean.clj

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@
66
^:test [bar [String] String]
77
^{:other "text"} [baz [String] String]]
88
:name Name)
9-
(:require [clojure.pprint :refer [fresh-line]]))
9+
(:require
10+
[clojure.pprint :refer [fresh-line]]))

0 commit comments

Comments
 (0)