Skip to content

immoh/nsorg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nsorg Build Status cljdoc badge

Clojure library for organizing ns form in a way that whitespace and comments are preserved.

Rules to apply are fully customizable; the default implementation

  • sorts :require, :require-macros, :use and :use-macros libspecs alphabetically and removes duplicates
  • sorts :import class names alphabetically and removes duplicates
  • sorts :exclude, :only, :refer, :refer-macros and :rename options alphabetically and removes duplicates

Also available as Leiningen plugin lein-nsorg and command line tool nsorg-cli.

Installation

Dependency information:

[nsorg "0.2.0"]

Usage

(require '[nsorg.core :as nsorg])

(println (nsorg/rewrite-ns-form "
(ns foo
  ;; use
  (:use [a.c :only [y z x z]]
        a
        [a.b]
))
"))

(ns foo
  ;; use
  (:use a
        [a.b]
        [a.c :only [x y z]]
))

Check API documentation for more details.

Limitations

  • Throws exception on some valid ns forms
  • Doesn't sort :refer, :load or :gen-class clauses

License

Copyright © 2018 Immo Heikkinen

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.