From 09f814c07e1a7b5d97ac63831644e0f439c1aefd Mon Sep 17 00:00:00 2001 From: jao Date: Tue, 23 Sep 2025 23:00:15 +0100 Subject: jao-clojure: fixes for test/implementation jumps --- custom/jao-custom-programming.el | 3 +++ lib/prog/jao-clojure.el | 15 +++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/custom/jao-custom-programming.el b/custom/jao-custom-programming.el index b88c43c..7fe3e7f 100644 --- a/custom/jao-custom-programming.el +++ b/custom/jao-custom-programming.el @@ -269,6 +269,8 @@ jao-kaocha-compilation-error))) (use-package jao-clojure + :demand t + :after cider-test :bind (:map clojure-mode-map (("C-c o" . jao-clojure-other-file)))) (use-package cider @@ -277,6 +279,7 @@ :init (setq cider-annotate-completion-candidates t cider-auto-select-error-buffer nil cider-auto-select-test-report-buffer nil + cider-clojure-cli-aliases ":test" cider-eldoc-display-for-symbol-at-point t cider-eldoc-ns-function #'identity ;; #'cider-last-ns-segment cider-enrich-classpath nil diff --git a/lib/prog/jao-clojure.el b/lib/prog/jao-clojure.el index e044f9e..827c47d 100644 --- a/lib/prog/jao-clojure.el +++ b/lib/prog/jao-clojure.el @@ -51,7 +51,7 @@ (jao-clojure--test-namespace-p (clojure-find-ns))) (defun jao-clojure--test-for (namespace sep) - (funcall cider-test-infer-test-ns namespace)) + (replace-regexp-in-string "\\." sep (cider-test-default-test-ns-fn namespace))) (defun jao-clojure--infer-test-ns (ns) (if (jao-clojure--test-namespace-p ns) @@ -65,20 +65,23 @@ (interactive) (let* ((f (format "%s/%s/%s.%s" (jao-clojure--root) - (jao-clojure--ext-dir "test") + "test" (jao-clojure--test-for (clojure-find-ns) "/") (file-name-extension buffer-file-name))) (f (replace-regexp-in-string "-" "_" f))) (find-file f))) (defun jao-clojure--implementation-for (namespace) - (let ((n (replace-regexp-in-string "-test$" "" namespace))) - (replace-regexp-in-string "\\.test\\." "." n))) + (thread-last (replace-regexp-in-string "-test$" "" namespace) + (replace-regexp-in-string "\\.test\\." ".") + (replace-regexp-in-string "-" "_") + (replace-regexp-in-string "\\." "/") + (substring-no-properties))) (defun jao-clojure--find-implementation (src) - (let ((f (format "%s/%s/%s.%s" + (let ((f (format "%s%s/%s.%s" (jao-clojure--root) - (jao-clojure--ext-dir src) + src (jao-clojure--implementation-for (clojure-find-ns)) (file-name-extension buffer-file-name)))) (and (file-exists-p f) f))) -- cgit v1.2.3