|
2 | 2 | (:require
|
3 | 3 | [clojure-lsp.feature.paredit :as f.paredit]
|
4 | 4 | [clojure-lsp.test-helper :as h]
|
5 |
| - [clojure.test :refer [are deftest is]])) |
| 5 | + [clojure.test :refer [are deftest]])) |
6 | 6 |
|
7 |
| -(defmacro ^:private assert-op [op expected code] |
8 |
| - `(let [{{row# :row col# :col} :position zloc# :zloc} (h/load-code-into-zloc-and-position ~code) |
9 |
| - applied# (~op h/default-uri zloc# row# col#) |
10 |
| - [text# _#] (h/positions-from-text ~expected)] |
11 |
| - (is (= text# |
12 |
| - (h/changes->code (-> applied# :changes-by-uri first second) (h/db)))))) |
13 |
| - |
14 |
| -(defn ^:private apply-paredit |
| 7 | +(defn ^:private pareditfy |
15 | 8 | [paredit-fn code]
|
16 |
| - (let [{{row :row col :col} :position zloc :zloc} (h/load-code-into-zloc-and-position code) |
17 |
| - transformations (paredit-fn h/default-uri zloc row col) |
18 |
| - {{actual-row :row actual-col :col} :range} (:show-document-after-edit transformations) |
19 |
| - result (h/changes->code (-> transformations :changes-by-uri first second) (h/db))] |
20 |
| - (if transformations |
21 |
| - (h/put-cursor-at result actual-row actual-col) |
22 |
| - "|"))) |
| 9 | + (let [{{row :row col :col} :position zloc :zloc} (h/load-code-into-zloc-and-position code)] |
| 10 | + (if-let [transformations (paredit-fn h/default-uri zloc row col)] |
| 11 | + (let [{{actual-row :row actual-col :col} :range} (:show-document-after-edit transformations) |
| 12 | + result (h/changes->code (-> transformations :changes-by-uri first second) (h/db))] |
| 13 | + (h/put-cursor-at result actual-row actual-col)) |
| 14 | + code))) |
23 | 15 |
|
24 | 16 | (deftest forward-slurp-test
|
25 |
| - (are [expected code] (= expected (apply-paredit f.paredit/forward-slurp code)) |
| 17 | + (are [expected code] (= expected (pareditfy f.paredit/forward-slurp code)) |
26 | 18 | "[1 [2 3| 4]]" "[1 [2 3|] 4]"
|
27 | 19 | "[1 [2 [|3 4 5]] 6]" "[1 [2 [|3 4] 5] 6]"
|
28 | 20 | "[|1 2]" "[|1] 2"
|
|
34 | 26 | ;; "(get {}| :a)" "(get {}|) :a"
|
35 | 27 | ;; "(get {} |:a)" "(get {} |) :a"
|
36 | 28 | "(get []| 0)" "(get []|) 0"
|
37 |
| - "(get [] |0)" "(get [] |) 0")) |
| 29 | + "(get [] |0)" "(get [] |) 0" |
| 30 | + #_())) |
38 | 31 |
|
39 | 32 | (deftest forward-barf-test
|
40 |
| - (assert-op f.paredit/forward-barf |
41 |
| - (h/code "[1 [2] 3| 4]") |
42 |
| - (h/code "[1 [2 3|] 4]")) |
43 |
| - (assert-op f.paredit/forward-barf |
44 |
| - (h/code "[1 [2 [|3 4] 5] 6]") |
45 |
| - (h/code "[1 [2 [|3 4 5]] 6]")) |
46 |
| - (assert-op f.paredit/forward-barf |
47 |
| - (h/code "[|1] 2") |
48 |
| - (h/code "[|1 2]")) |
49 |
| - (assert-op f.paredit/forward-barf |
50 |
| - (h/code "|1") |
51 |
| - (h/code "|1")) |
52 |
| - (assert-op f.paredit/forward-barf |
53 |
| - (h/code "|") |
54 |
| - (h/code "|"))) |
| 33 | + (are [expected code] (= expected (pareditfy f.paredit/forward-barf code)) |
| 34 | + "[1 [2] 3| 4]" "[1 [2 3|] 4]" |
| 35 | + "[12 [34] 5|6 78]" "[12 [34 5|6] 78]" |
| 36 | + "[1 [2 [|3 4] 5] 6]" "[1 [2 [|3 4 5]] 6]" |
| 37 | + "[|1] 2" "[|1 2]" |
| 38 | + "|1" "|1" |
| 39 | + "|" "|" |
| 40 | + "(get []) |:a" "(get [] |:a)" |
| 41 | + "(get []|) :a" "(get []| :a)" |
| 42 | + #_())) |
55 | 43 |
|
56 | 44 | (deftest backward-slurp-test
|
57 |
| - (are [expected code] (= expected (apply-paredit f.paredit/backward-slurp code)) |
| 45 | + (are [expected code] (= expected (pareditfy f.paredit/backward-slurp code)) |
58 | 46 | "[[1 |2 3] 4]" "[1 [|2 3] 4]"
|
59 | 47 | "[1 [[2 |3 4] 5] 6]" "[1 [2 [|3 4] 5] 6]"
|
60 | 48 | "[|1] 2" "[|1] 2"
|
61 | 49 | "|1" "|1"
|
62 |
| - "|" "|")) |
| 50 | + "|" "|" |
| 51 | + #_())) |
63 | 52 |
|
64 | 53 | (deftest backward-barf-test
|
65 |
| - (assert-op f.paredit/backward-barf |
66 |
| - (h/code "[1 |2 [3] 4]") |
67 |
| - (h/code "[1 [|2 3] 4]")) |
68 |
| - (assert-op f.paredit/backward-barf |
69 |
| - (h/code "[1 [2 [|3 4] 5] 6]") |
70 |
| - (h/code "[1 [[2 |3 4] 5] 6]")) |
71 |
| - (assert-op f.paredit/backward-barf |
72 |
| - (h/code "1 [] 2") |
73 |
| - (h/code "[|1] 2")) |
74 |
| - (assert-op f.paredit/backward-barf |
75 |
| - (h/code "|1") |
76 |
| - (h/code "|1")) |
77 |
| - (assert-op f.paredit/backward-barf |
78 |
| - (h/code "|") |
79 |
| - (h/code "|"))) |
| 54 | + (are [expected code] (= expected (pareditfy f.paredit/backward-barf code)) |
| 55 | + "[1 |2 [3] 4]" "[1 [|2 3] 4]" |
| 56 | + "[1 [2 [|3 4] 5] 6]" "[1 [[2 |3 4] 5] 6]" |
| 57 | + "|1 [] 2" "[|1] 2" |
| 58 | + "|1" "|1" |
| 59 | + "|" "|" |
| 60 | + #_())) |
80 | 61 |
|
81 | 62 | (deftest raise-test
|
82 |
| - (assert-op f.paredit/raise |
83 |
| - (h/code "[1 [2 |3 5] 6]") |
84 |
| - (h/code "[1 [2 [|3 4] 5] 6]")) |
85 |
| - ;; FIXME: the scenario below fails |
86 |
| - ;; (assert-op f.paredit/raise |
87 |
| - ;; (h/code "[1 [2 3| 5] 6]") |
88 |
| - ;; (h/code "[1 [2 [3| 4] 5] 6]")) |
89 |
| - (assert-op f.paredit/raise |
90 |
| - (h/code "|1") |
91 |
| - (h/code "|1")) |
92 |
| - (assert-op f.paredit/raise |
93 |
| - (h/code "|") |
94 |
| - (h/code "|"))) |
| 63 | + (are [expected code] (= expected (pareditfy f.paredit/raise code)) |
| 64 | + "[1 [2 |3 5] 6]" "[1 [2 [|3 4] 5] 6]" |
| 65 | + ;; FIXME: the scenario below fails |
| 66 | + ;; "[1 [2 |4 5] 6]" "[1 [2 [3| 4] 5] 6]" |
| 67 | + "|1" "|1" |
| 68 | + "|" "|" |
| 69 | + #_())) |
95 | 70 |
|
96 | 71 | (deftest kill-test
|
97 |
| - (assert-op f.paredit/kill |
98 |
| - (h/code "[1 [2 [|] 5] 6]") |
99 |
| - (h/code "[1 [2 [|3 4] 5] 6]")) |
100 |
| - (assert-op f.paredit/kill |
101 |
| - (h/code "|1") |
102 |
| - (h/code "|1")) |
103 |
| - (assert-op f.paredit/kill |
104 |
| - (h/code "|") |
105 |
| - (h/code "|"))) |
| 72 | + (are [expected code] (= expected (pareditfy f.paredit/kill code)) |
| 73 | + "[1 [2 [|] 5] 6]" "[1 [2 [|3 4] 5] 6]" |
| 74 | + "|1" "|1" |
| 75 | + "|" "|" |
| 76 | + #_())) |
0 commit comments