Function: cider-ns-edit--add-import
cider-ns-edit--add-import is a byte-compiled function defined in
cider-ns.el.
Signature
(cider-ns-edit--add-import NS-START CLASS)
Documentation
Import CLASS, a fully qualified class name, in the ns form at NS-START.
When the ns form already imports from CLASS's package with a list or a vector, CLASS joins it. Return (CHANGED . CLASS).
Source Code
;; Defined in ~/.emacs.d/elpa/cider-20261106.1225/cider-ns.el
(defun cider-ns-edit--add-import (ns-start class)
"Import CLASS, a fully qualified class name, in the ns form at NS-START.
When the ns form already imports from CLASS's package with a list or a
vector, CLASS joins it. Return (CHANGED . CLASS)."
(let* ((dot (or (string-match-p "\\.[^.]+\\'" class)
(user-error "%s isn't a fully qualified class name" class)))
(package (substring class 0 dot))
(name (substring class (1+ dot)))
(clause (cider-ns-edit--clause ns-start ":import"))
(entries (and clause (cdr (cider-ns-edit--elements clause))))
(group (seq-find (lambda (pos)
(and (cider-ns-edit--seq-p pos)
(equal (cider-ns-edit--libspec-ns pos) package)))
entries)))
(cond
((or (seq-find (lambda (pos) (equal (cider-ns-edit--text pos) class)) entries)
(and group
(member name (mapcar #'cider-ns-edit--text
(cdr (cider-ns-edit--elements group))))))
(cons nil class))
(group
(goto-char (1- (scan-sexps group 1)))
(insert " " name)
(cons t class))
(clause
(cider-ns-edit--append clause class)
(cons t class))
(t
(cider-ns-edit--add-clause ns-start ":import" class)
(cons t class)))))