Function: clojure-sort-ns

clojure-sort-ns is an interactive and byte-compiled function defined in clojure-mode.el.

Signature

(clojure-sort-ns)

Documentation

Internally sort each sexp inside the ns form.

Key Bindings

Source Code

;; Defined in ~/.emacs.d/elpa/clojure-mode-20260325.811/clojure-mode.el
(defun clojure-sort-ns ()
  "Internally sort each sexp inside the ns form."
  (interactive)
  (if (clojure-find-ns)
      (save-excursion
        (goto-char (match-beginning 0))
        (let ((beg (point))
              (ns))
          (forward-sexp 1)
          (setq ns (buffer-substring beg (point)))
          (forward-char -1)
          ;; Walk backwards through keyword forms.  The `while' loop
          ;; uses a broad match so it steps over ALL keyword forms
          ;; (including non-sortable ones like :gen-class), while
          ;; `when' only sorts forms with known sortable contents.
          (while (progn (forward-sexp -1)
                        (looking-at "(:[a-z]"))
            (when (looking-at "(:\\(?:require\\|import\\|use\\|refer-clojure\\|require-macros\\)\\>")
              (save-excursion
                (forward-char 1)
                (forward-sexp 1)
                (clojure--sort-following-sexps))))
          (goto-char beg)
          (if (looking-at (regexp-quote ns))
              (message "ns form is already sorted")
            (message "ns form has been sorted"))))
    (user-error "Can't find ns form")))