Skip to content

Commit dd0ecbc

Browse files
committed
Remove cider-remember-clojure-buffer and cider-last-clojure-buffer
1 parent 3d5d73c commit dd0ecbc

File tree

4 files changed

+20
-49
lines changed

4 files changed

+20
-49
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010

1111
### Changes
1212

13+
* `cider-switch-to-last-clojure-buffer` switches to most recent relevant Clojure(script) buffer instead of the last "remembered" buffer.
1314
* [cider-nrepl#438](https://github.com/clojure-emacs/cider-nrepl/pull/438): Improve startup time by deferring loading CIDER's middleware until the first usage.
1415
* [#2078](https://github.com/clojure-emacs/cider/pull/2078): Improve startup time by bundling together sync requests during startup.
1516
* `cider-rotate-default-connection` will warn if you use it with only a single active connection.
1617

1718
### Bugs Fixed
1819

19-
* `cider-switch-to-last-clojure-buffer` now switches to a Clojure buffer even when previously remembered buffer no longer exists.
2020
* [#2084](https://github.com/clojure-emacs/cider/issues/2084): Select correct REPL type (clj or cljs) in cider-switch-to-repl-buffer conditional on the current buffer.
2121
* [#2088](https://github.com/clojure-emacs/cider/issues/2088): Fix functions defined with `def` being font-locked as vars instead of functions.
2222
* [#1651](https://github.com/clojure-emacs/cider/issues/1651), [cider-nrepl#445](https://github.com/clojure-emacs/cider-nrepl/pull/455): Fix `cider-expected-ns` returns `nil` on boot projects.

cider-mode.el

Lines changed: 11 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -83,21 +83,6 @@ entirely."
8383

8484

8585
;;; Switching between REPL & source buffers
86-
(defvar-local cider-last-clojure-buffer nil
87-
"A buffer-local variable holding the last Clojure source buffer.
88-
`cider-switch-to-last-clojure-buffer' uses this variable to jump
89-
back to last Clojure source buffer.")
90-
91-
(defun cider-remember-clojure-buffer (buffer)
92-
"Try to remember the BUFFER from which the user jumps.
93-
The BUFFER needs to be a Clojure buffer and current major mode needs
94-
to be `cider-repl-mode'. The user can use `cider-switch-to-last-clojure-buffer'
95-
to jump back to the last Clojure source buffer."
96-
(when (and buffer
97-
(with-current-buffer buffer
98-
(derived-mode-p 'clojure-mode))
99-
(derived-mode-p 'cider-repl-mode))
100-
(setq cider-last-clojure-buffer buffer)))
10186

10287
(defun cider--switch-to-repl-buffer (repl-buffer &optional set-namespace)
10388
"Select the REPL-BUFFER, when possible in an existing window.
@@ -117,7 +102,6 @@ that of the namespace in the Clojure source buffer."
117102
;; then if necessary we update its namespace
118103
(when set-namespace
119104
(cider-repl-set-ns (with-current-buffer buffer (cider-current-ns))))
120-
(cider-remember-clojure-buffer buffer)
121105
(goto-char (point-max))))
122106

123107
(defun cider-switch-to-repl-buffer (&optional set-namespace)
@@ -139,7 +123,7 @@ of the namespace in the Clojure source buffer."
139123
(interactive "P")
140124
(let* ((connections (cider-connections))
141125
(type (cider-connection-type-for-buffer))
142-
(a-repl nil)
126+
(a-repl)
143127
(the-repl (seq-find (lambda (b)
144128
(when (member b connections)
145129
(unless a-repl
@@ -168,18 +152,16 @@ so that it is very convenient to jump between a
168152
Clojure buffer and the REPL buffer."
169153
(interactive)
170154
(if (derived-mode-p 'cider-repl-mode)
171-
(let* ((a-buf nil)
172-
(the-buf (if (buffer-live-p cider-last-clojure-buffer)
173-
cider-last-clojure-buffer
174-
(let ((repl-type (cider-connection-type-for-buffer)))
175-
(seq-find (lambda (b)
176-
(unless (with-current-buffer b (derived-mode-p 'cider-repl-mode))
177-
(when-let ((type (cider-connection-type-for-buffer b)))
178-
(unless a-buf
179-
(setq a-buf b))
180-
(or (equal type "multi")
181-
(equal type repl-type)))))
182-
(buffer-list))))))
155+
(let* ((a-buf)
156+
(the-buf (let ((repl-type (cider-connection-type-for-buffer)))
157+
(seq-find (lambda (b)
158+
(unless (with-current-buffer b (derived-mode-p 'cider-repl-mode))
159+
(when-let ((type (cider-connection-type-for-buffer b)))
160+
(unless a-buf
161+
(setq a-buf b))
162+
(or (equal type "multi")
163+
(equal type repl-type)))))
164+
(buffer-list)))))
183165
(if-let ((buf (or the-buf a-buf)))
184166
(if cider-repl-display-in-current-window
185167
(pop-to-buffer-same-window buf)

cider-repl.el

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -274,23 +274,15 @@ efficiency."
274274
(cider-set-buffer-ns initial-ns)))))
275275

276276
(defun cider-repl-require-repl-utils ()
277-
"Require standard REPL util functions into the current REPL."
278-
(interactive)
279-
(nrepl-send-sync-request
280-
(lax-plist-put
281-
(nrepl--eval-request
282-
"(when (clojure.core/resolve 'clojure.main/repl-requires)
277+
"Require standard REPL util functions into the current REPL."
278+
(interactive)
279+
(nrepl-send-sync-request
280+
(lax-plist-put
281+
(nrepl--eval-request
282+
"(when (clojure.core/resolve 'clojure.main/repl-requires)
283283
(clojure.core/map clojure.core/require clojure.main/repl-requires))")
284-
"inhibit-cider-middleware" "true")
285-
(cider-current-connection)))
286-
287-
(defvar cider-current-clojure-buffer nil
288-
"This variable holds current buffer temporarily when connecting to a REPL.
289-
It is set to current buffer when `cider' or `cider-jack-in' is called.
290-
After the REPL buffer is created, the value of this variable is used
291-
to call `cider-remember-clojure-buffer'.")
292-
293-
(declare-function cider-remember-clojure-buffer "cider-mode")
284+
"inhibit-cider-middleware" "true")
285+
(cider-current-connection)))
294286

295287
(defun cider-repl-init (buffer &optional no-banner)
296288
"Initialize the REPL in BUFFER.
@@ -305,7 +297,6 @@ client process connection. Unless NO-BANNER is non-nil, insert a banner."
305297
(cider-repl-require-repl-utils)
306298
(unless no-banner
307299
(cider-repl--insert-banner-and-prompt buffer))
308-
(cider-remember-clojure-buffer cider-current-clojure-buffer)
309300
buffer)
310301

311302
(defun cider-repl--insert-banner-and-prompt (buffer)

cider.el

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -604,7 +604,6 @@ start the server.
604604
If CLJS-TOO is non-nil, also start a ClojureScript REPL session with its
605605
own buffer."
606606
(interactive "P")
607-
(setq cider-current-clojure-buffer (current-buffer))
608607
(let* ((project-type (cider-project-type))
609608
(command (cider-jack-in-command project-type))
610609
(command-resolved (cider-jack-in-resolve-command project-type))
@@ -657,7 +656,6 @@ Create REPL buffer and start an nREPL client connection.
657656
When the optional param PROJECT-DIR is present, the connection
658657
gets associated with it."
659658
(interactive (cider-select-endpoint))
660-
(setq cider-current-clojure-buffer (current-buffer))
661659
(when-let ((repl-buff (cider-find-reusable-repl-buffer `(,host ,port) nil)))
662660
(let* ((nrepl-create-client-buffer-function #'cider-repl-create)
663661
(nrepl-use-this-as-repl-buffer repl-buff)

0 commit comments

Comments
 (0)