Skip to content

Commit

Permalink
Add support for Clojurescript-specific libspecs
Browse files Browse the repository at this point in the history
  • Loading branch information
divergentdave committed May 16, 2017
1 parent c15f493 commit 1c23c2a
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 5 deletions.
20 changes: 17 additions & 3 deletions src/eastwood/linters/misc.clj
Expand Up @@ -867,14 +867,27 @@
;; :require, as :refer can be used for that purpose
;; instead.
:require (merge
{:as :symbol, :refer :symbol-list-or-all}
{:as :symbol, :refer :symbol-list-or-all,
:include-macros :true, :refer-macros :symbol-list}
(if (contains? libspec-opts :refer)
{:exclude :symbol-list,
:rename :map-from-symbol-to-symbol}
{}))
:require-macros (merge
{:as :symbol, :refer :symbol-list-or-all}
(if (contains? libspec-opts :refer)
{:exclude :symbol-list,
:rename :map-from-symbol-to-symbol}
{}))
:use {:as :symbol :refer :symbol-list-or-all,
:exclude :symbol-list, :rename :map-from-symbol-to-symbol,
:only :symbol-list})
:only :symbol-list}
:use-macros {:as :symbol :refer :symbol-list-or-all,
:exclude :symbol-list, :rename :map-from-symbol-to-symbol,
:only :symbol-list}
:refer-clojure {:exclude :symbol-list,
:rename :map-from-symbol-to-symbol}
:import {})
bad-option-keys (set/difference (set options)
(set (keys allowed-options)))
libspec-opts (select-keys libspec-opts
Expand All @@ -888,7 +901,8 @@
:symbol-list-or-all (or (= :all option-val)
(symbol-list? option-val))
:map-from-symbol-to-symbol
(map-from-symbol-to-symbol? option-val)))
(map-from-symbol-to-symbol? option-val)
:true (= true option-val)))
libspec-opts))]
(concat
(if (seq bad-option-keys)
Expand Down
4 changes: 2 additions & 2 deletions test/eastwood/test/linters_test.clj
Expand Up @@ -1718,12 +1718,12 @@ the next."
:line 114, :column 3}
1,
{:linter :wrong-ns-form,
:msg ":require has a libspec with wrong option keys: :only - option keys for :require should only include the following: :as :refer",
:msg ":require has a libspec with wrong option keys: :only - option keys for :require should only include the following: :as :include-macros :refer :refer-macros",
:file (fname-from-parts "testcases" "wrongnsform.clj"),
:line 150, :column 13}
1,
{:linter :wrong-ns-form,
:msg ":require has a libspec with wrong option keys: :only - option keys for :require should only include the following: :as :exclude :refer :rename",
:msg ":require has a libspec with wrong option keys: :only - option keys for :require should only include the following: :as :exclude :include-macros :refer :refer-macros :rename",
:file (fname-from-parts "testcases" "wrongnsform.clj"),
:line 182, :column 13}
1,
Expand Down

0 comments on commit 1c23c2a

Please sign in to comment.