[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/cider 363b8e9eb2 10/15: Recompute namespace info on each f
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/cider 363b8e9eb2 10/15: Recompute namespace info on each fighweel-main recompilation |
Date: |
Fri, 18 Aug 2023 06:59:23 -0400 (EDT) |
branch: elpa/cider
commit 363b8e9eb2dabde38d1241d929689a6533af65dd
Author: vemv <vemv@users.noreply.github.com>
Commit: vemv <vemv@users.noreply.github.com>
Recompute namespace info on each fighweel-main recompilation
Similar to https://github.com/clojure-emacs/cider/pull/3396, except that
it's only necessary on recompilation - not on evaluations.
---
CHANGELOG.md | 2 ++
cider-repl.el | 27 ++++++++++++++++++++++++---
2 files changed, 26 insertions(+), 3 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 52f4482b20..2bcd9f6282 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -23,6 +23,8 @@
- [#3112](https://github.com/clojure-emacs/cider/issues/3112): Fix the CIDER
`xref-find-references` backend to return correct filenames.
- [#3393](https://github.com/clojure-emacs/cider/issues/3393): recompute
namespace info on each shadow-cljs recompilation or evaluation.
- [#3402](https://github.com/clojure-emacs/cider/issues/3402): fix
`cider-format-connection-params` edge case for Emacs 29.
+- [#3393](https://github.com/clojure-emacs/cider/issues/3393): Recompute
namespace info on each shadow-cljs recompilation or evaluation.
+- Recompute namespace info on each fighweel-main recompilation.
- Fix the `xref-find-definitions` CIDER backend to return correct filenames.
- Fix the `cider-xref-fn-deps` buttons to direct to the right file.
diff --git a/cider-repl.el b/cider-repl.el
index d70b708c36..b083a08deb 100644
--- a/cider-repl.el
+++ b/cider-repl.el
@@ -986,6 +986,12 @@ t, as the content-type response is (currently) an
alternative to the
value response. However for handlers which themselves issue subsequent
nREPL ops, it may be convenient to prevent inserting a prompt.")
+(defun cider--maybe-get-state-cljs ()
+ "Invokes `cider/get-state' when it's possible to do so."
+ (when-let ((conn (cider-current-repl 'cljs)))
+ (when (nrepl-op-supported-p "cider/get-state" conn)
+ (nrepl-send-request '("op" "cider/get-state") nil conn))))
+
(defun cider--maybe-get-state-for-shadow-cljs (buffer &optional err)
"Refresh the changed namespaces metadata given BUFFER and ERR (stderr
string).
@@ -1003,9 +1009,16 @@ This is particularly necessary for shadow-cljs because:
(if err
(string-match-p "Build completed\\." err)
t))
- (when-let ((conn (cider-current-repl 'cljs)))
- (when (nrepl-op-supported-p "cider/get-state" conn)
- (nrepl-send-request '("op" "cider/get-state") nil conn))))))
+ (cider--maybe-get-state-cljs))))
+
+(defun cider--maybe-get-state-for-figwheel-main (buffer out)
+ "Refresh the changed namespaces metadata given BUFFER and OUT (stdout
string)."
+ (with-current-buffer buffer
+ (when (and (eq cider-repl-type 'cljs)
+ (eq cider-cljs-repl-type 'figwheel-main)
+ (not cider-repl-cljs-upgrade-pending)
+ (string-match-p "Successfully compiled build" out))
+ (cider--maybe-get-state-cljs))))
(defun cider--shadow-cljs-handle-stderr (buffer err)
"Refresh the changed namespaces metadata given BUFFER and ERR."
@@ -1015,6 +1028,12 @@ This is particularly necessary for shadow-cljs because:
"Refresh the changed namespaces metadata given BUFFER."
(cider--maybe-get-state-for-shadow-cljs buffer))
+(defvar cider--repl-stdout-functions (list
#'cider--maybe-get-state-for-figwheel-main)
+ "Functions to be invoked each time new stdout is received on a repl buffer.
+
+Good for, for instance, monitoring specific strings that may be logged,
+and responding to them.")
+
(defvar cider--repl-stderr-functions (list #'cider--shadow-cljs-handle-stderr)
"Functions to be invoked each time new stderr is received on a repl buffer.
@@ -1032,6 +1051,8 @@ and responding to them.")
(lambda (buffer value)
(cider-repl-emit-result buffer value t))
(lambda (buffer out)
+ (dolist (f cider--repl-stdout-functions)
+ (funcall f buffer out))
(cider-repl-emit-stdout buffer out))
(lambda (buffer err)
(dolist (f cider--repl-stderr-functions)
- [nongnu] elpa/cider updated (e28fe55d55 -> 856a35cf97), ELPA Syncer, 2023/08/18
- [nongnu] elpa/cider 00f765b800 04/15: Add a standard header suggesting `it` blocks, ELPA Syncer, 2023/08/18
- [nongnu] elpa/cider 856a35cf97 15/15: Don't lose the CIDER session over TRAMP files, ELPA Syncer, 2023/08/18
- [nongnu] elpa/cider f3f7d83bb1 02/15: Use `it` more, ELPA Syncer, 2023/08/18
- [nongnu] elpa/cider f14c8de037 12/15: Describe `cider-locate-running-nrepl-ports`, ELPA Syncer, 2023/08/18
- [nongnu] elpa/cider 1f426a4ac8 03/15: Settle on `*tests.el` naming, ELPA Syncer, 2023/08/18
- [nongnu] elpa/cider 093f79cf09 11/15: Check `.nrepl-port`-like files for liveness, ELPA Syncer, 2023/08/18
- [nongnu] elpa/cider ff98bc7df2 05/15: Bump some copyright years, ELPA Syncer, 2023/08/18
- [nongnu] elpa/cider 74472b120b 06/15: Cover `cider-format-connection-params`, ELPA Syncer, 2023/08/18
- [nongnu] elpa/cider 34f1bfc377 09/15: Bump the injected Piggieback to 0.5.3, ELPA Syncer, 2023/08/18
- [nongnu] elpa/cider 363b8e9eb2 10/15: Recompute namespace info on each fighweel-main recompilation,
ELPA Syncer <=
- [nongnu] elpa/cider 9e4bce60d9 13/15: Add a Dockerfile for TRAMP development purposes, ELPA Syncer, 2023/08/18
- [nongnu] elpa/cider 012e3fe71f 14/15: Make TRAMP functionality work when using non-standard ports, ELPA Syncer, 2023/08/18
- [nongnu] elpa/cider 60aaf2cf44 01/15: Remove unused `provide`s in tests, ELPA Syncer, 2023/08/18
- [nongnu] elpa/cider aa516693bd 07/15: Run test suite on Emacs 29, ELPA Syncer, 2023/08/18
- [nongnu] elpa/cider 9d1c3cd203 08/15: fix `cider-format-connection-params` edge case for Emacs 29, ELPA Syncer, 2023/08/18