Skip to content

Commit f4d8087

Browse files
fixup
1 parent ee4635f commit f4d8087

File tree

3 files changed

+15
-70
lines changed

3 files changed

+15
-70
lines changed

cider-eval.el

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -245,17 +245,18 @@ currently selected buffer."
245245
'(t always only-in-repl)
246246
'(t always except-in-repl)))))
247247

248-
(defun cider-new-error-buffer (&optional mode error-types)
248+
(defun cider-new-error-buffer (&optional mode error-types dont-show)
249249
"Return an empty error buffer using MODE.
250250
251251
When deciding whether to display the buffer, takes into account not only
252252
the value of `cider-show-error-buffer' and the currently selected buffer
253253
but also the ERROR-TYPES of the error, which is checked against the
254-
`cider-stacktrace-suppressed-errors' set.
254+
`cider-stacktrace-suppressed-errors' set, and the value of DONT-SHOW.
255255
256256
When deciding whether to select the buffer, takes into account the value of
257257
`cider-auto-select-error-buffer'."
258258
(if (and (cider--show-error-buffer-p)
259+
(not dont-show)
259260
(not (cider-stacktrace-some-suppressed-errors-p error-types)))
260261
(cider-popup-buffer cider-error-buffer cider-auto-select-error-buffer mode 'ancillary)
261262
(cider-make-popup-buffer cider-error-buffer mode 'ancillary)))
@@ -294,13 +295,16 @@ When clojure.stracktrace is not present."
294295
(cider-nrepl-sync-request:eval
295296
"(println (ex-data *e))")))
296297

297-
(defun cider--render-stacktrace-causes (causes &optional error-types)
298+
(defun cider--render-stacktrace-causes (causes &optional error-types is-compilation)
298299
"If CAUSES is non-nil, render its contents into a new error buffer.
299300
Optional argument ERROR-TYPES contains a list which should determine the
300-
op/situation that originated this error."
301+
op/situation that originated this error.
302+
If IS-COMPILATION is true, render the stacktrace into the error buffer but
303+
don't bring it forward."
301304
(when causes
302-
(let ((error-buffer (cider-new-error-buffer #'cider-stacktrace-mode error-types)))
303-
(cider-stacktrace-render error-buffer (reverse causes) error-types))))
305+
(let ((error-buffer (cider-new-error-buffer #'cider-stacktrace-mode
306+
error-types is-compilation)))
307+
(cider-stacktrace-render error-buffer causes error-types))))
304308

305309
(defconst cider-clojure-compilation-error-phases-default-value
306310
'("read-source"
@@ -336,8 +340,8 @@ https://clojure.org/reference/repl_and_main#_at_repl"
336340
cider-clojure-compilation-error-phases-default-value
337341
cider-clojure-compilation-error-phases))
338342

339-
(defun cider--display-error-as-overlay (buffer err)
340-
"Display ERR as a temporary overlay in BUFFER."
343+
(defun cider--display-error-unobtrusively (buffer err)
344+
"Display ERR as a minibuffer message and/or as a temporary overlay in BUFFER."
341345
(let ((cider-result-use-clojure-font-lock nil)
342346
(trimmed-err (funcall cider-inline-error-message-function err)))
343347
(with-current-buffer buffer
@@ -357,8 +361,8 @@ For others, pop up *cider-error* buffer."
357361
(when (member "notification" status)
358362
(nrepl-notify msg type))))
359363
;; Render stacktrace in *cider-error* buffer if it is a runtime error.
360-
(unless (member ex-phase (cider-clojure-compilation-error-phases))
361-
(cider--render-stacktrace-causes causes))
364+
(cider--render-stacktrace-causes
365+
causes nil (member ex-phase (cider-clojure-compilation-error-phases)))
362366
;; If the error is a compilation error (which we normally don't show
363367
;; *cider-error* buffer for), or the error buffer is disabled, compensate for
364368
;; the lack of info with a overlay error.

cider.el

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -573,7 +573,7 @@ the artifact.")
573573
574574
Used when `cider-jack-in-auto-inject-clojure' is set to `latest'.")
575575

576-
(defconst cider-required-middleware-version "0.52.1"
576+
(defconst cider-required-middleware-version "0.53.0-alpha1"
577577
"The CIDER nREPL version that's known to work properly with CIDER.")
578578

579579
(defcustom cider-injected-middleware-version cider-required-middleware-version

test/cider-error-parsing-tests.el

Lines changed: 0 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -139,65 +139,6 @@
139139
(match-string 2 clojure-1.10-compiler-error))
140140
:to-equal "src/haystack/parser.cljc")))))
141141

142-
(describe "cider-clojure-runtime-error-regexp"
143-
(it "Recognizes a clojure-1.10 runtime error message"
144-
145-
;; Something like "(ArithmeticException)" will be absent for Exception and RuntimeException in particular
146-
(let ((specimen "Execution error at foo/foo (src/haystack/parser.cljc:4)."))
147-
(expect specimen :to-match cider-clojure-runtime-error-regexp)
148-
(expect (progn
149-
(string-match cider-clojure-runtime-error-regexp specimen)
150-
(match-string 2 specimen))
151-
:to-equal "src/haystack/parser.cljc"))
152-
153-
(let ((specimen "Execution error (ArithmeticException) at foo/foo (src/haystack/parser.cljc:4)."))
154-
(expect specimen :to-match cider-clojure-runtime-error-regexp)
155-
(expect (progn
156-
(string-match cider-clojure-runtime-error-regexp specimen)
157-
(match-string 2 specimen))
158-
:to-equal "src/haystack/parser.cljc"))
159-
160-
;; without exception class cause-type
161-
(let ((specimen "Execution error at (src/haystack/parser.cljc:4)."))
162-
(expect specimen :to-match cider-clojure-runtime-error-regexp)
163-
(expect (progn
164-
(string-match cider-clojure-runtime-error-regexp specimen)
165-
(match-string 2 specimen))
166-
:to-equal "src/haystack/parser.cljc"))
167-
168-
;; without foo/foo symbol
169-
(let ((specimen "Execution error (ArithmeticException) at (src/haystack/parser.cljc:4)."))
170-
(expect specimen :to-match cider-clojure-runtime-error-regexp)
171-
(expect (progn
172-
(string-match cider-clojure-runtime-error-regexp specimen)
173-
(match-string 2 specimen))
174-
:to-equal "src/haystack/parser.cljc")))
175-
176-
(it "Recognizes a clojure-1.10 runtime spec validation error message"
177-
(let ((specimen "Execution error - invalid arguments to foo/bar at (src/haystack/parser.cljc:4)."))
178-
(expect specimen :to-match cider-clojure-runtime-error-regexp)
179-
(expect (progn
180-
(string-match cider-clojure-runtime-error-regexp specimen)
181-
(match-string 2 specimen))
182-
:to-equal "src/haystack/parser.cljc")))
183-
184-
;; Java source locations may be negative (#3687)
185-
(it "Recognizes an error thrown from a java source file"
186-
(let ((specimen "Execution error (FileNotFoundException) at java.io.FileInputStream/open0 (FileInputStream.java:-2)."))
187-
(expect specimen :to-match cider-clojure-runtime-error-regexp)
188-
(expect (progn
189-
(string-match cider-clojure-runtime-error-regexp specimen)
190-
(match-string 2 specimen))
191-
:to-equal "FileInputStream.java")))
192-
193-
(it "Recognizes errors thrown during the result printing phase"
194-
(let ((specimen "Error printing return value (ClassCastException) at clojure.core/file-seq$fn (core.clj:4997)."))
195-
(expect specimen :to-match cider-clojure-runtime-error-regexp)
196-
(expect (progn
197-
(string-match cider-clojure-runtime-error-regexp specimen)
198-
(match-string 2 specimen))
199-
:to-equal "core.clj"))))
200-
201142
(describe "cider-module-info-regexp"
202143
(it "Matches module info provided by Java"
203144
(expect " (java.lang.Long is in module java.base of loader 'bootstrap'; clojure.lang.IObj is in unnamed module of loader 'app')"

0 commit comments

Comments
 (0)