Function: cider-ns-edit--clean
cider-ns-edit--clean is a byte-compiled function defined in
cider-ns.el.
Signature
(cider-ns-edit--clean NS-START UNUSED)
Documentation
Remove from the ns form at NS-START what UNUSED says it can do without.
UNUSED is what cider-sync-request:clean-ns returns. A clause left
empty goes too. Return (REMOVED . REMOVED), REMOVED being descriptions
of what got removed, for cider-ns-edit--edit.
Source Code
;; Defined in ~/.emacs.d/elpa/cider-20261106.1225/cider-ns.el
(defun cider-ns-edit--clean (ns-start unused)
"Remove from the ns form at NS-START what UNUSED says it can do without.
UNUSED is what `cider-sync-request:clean-ns' returns. A clause left
empty goes too. Return (REMOVED . REMOVED), REMOVED being descriptions
of what got removed, for `cider-ns-edit--edit'."
(let* (clauses
removed
(record (lambda (result)
(when result
;; The edits that follow move the clauses after them.
(push (copy-marker (car result)) clauses)
(setq removed (append removed (cdr result)))))))
(dolist (libspec (nrepl-dict-get unused "libspecs"))
(funcall record (cider-ns-edit--clean-libspec ns-start libspec)))
(dolist (class (nrepl-dict-get unused "imports"))
(funcall record (cider-ns-edit--clean-import ns-start class)))
(let* ((elements (cider-ns-edit--elements ns-start))
(touched (mapcar #'marker-position clauses))
(empty (seq-filter (lambda (i)
(let ((pos (nth i elements)))
(and (memql pos touched)
(cider-ns-edit--empty-clause-p pos))))
(number-sequence 0 (1- (length elements))))))
(when empty
(cider-ns-edit--delete-elements ns-start empty)))
(dolist (marker clauses)
(set-marker marker nil))
(cons removed removed)))