Reverting "Fix handling of ::keywords using aliases"
Evaluating ns forms which :use some symbols gets as in trouble unless we also evaluate the relevant definitions in the other namespace. This leads to the issue of loading the namespaces in the correct order etc. So, if we want to be able to generate docs without compiling the whole project, the "eval ns forms" approach is a no-go. :-(
This commit is contained in:
parent
3fff515edb
commit
f7f63b1149
2 changed files with 2 additions and 16 deletions
|
@ -15,9 +15,6 @@
|
|||
(def top-level-comments (atom []))
|
||||
(def sub-level-comments (atom []))
|
||||
|
||||
(def user-ns (the-ns 'user))
|
||||
(def current-namespace (atom user-ns))
|
||||
|
||||
(def *comments* nil)
|
||||
|
||||
(defn read-comment [reader semicolon]
|
||||
|
@ -52,14 +49,6 @@
|
|||
(recur (.read rdr))
|
||||
:else (.unread rdr c))))
|
||||
|
||||
(defn maybe-change-namespace [form]
|
||||
(when (and (seq? form)
|
||||
('#{ns in-ns require use alias} (first form)))
|
||||
(binding [*ns* @current-namespace]
|
||||
(eval form))
|
||||
(when ('#{ns in-ns} (first form))
|
||||
(reset! current-namespace (the-ns (second form))))))
|
||||
|
||||
(defn parse* [reader]
|
||||
(take-while
|
||||
:form
|
||||
|
@ -69,14 +58,12 @@
|
|||
(binding [*comments* top-level-comments]
|
||||
(skip-spaces-and-comments reader))
|
||||
(let [start (.getLineNumber reader)
|
||||
form (binding [*comments* sub-level-comments
|
||||
*ns* @current-namespace]
|
||||
form (binding [*comments* sub-level-comments]
|
||||
(. clojure.lang.LispReader
|
||||
(read reader false nil false)))
|
||||
end (.getLineNumber reader)
|
||||
code {:form form :start start :end end}
|
||||
comments @top-level-comments]
|
||||
(maybe-change-namespace form)
|
||||
(swap! top-level-comments (constantly []))
|
||||
(if (empty? comments)
|
||||
[code]
|
||||
|
|
|
@ -8,5 +8,4 @@
|
|||
;(is (= (count (marginalia.parser/parse "(ns test)\n123")) 1)) still failing
|
||||
(is (= (count (marginalia.parser/parse "(ns test)\n123\n")) 1))
|
||||
(is (= (count (marginalia.parser/parse "(ns test)\n\"string\"")) 1))
|
||||
(is (= (count (marginalia.parser/parse "(ns test)\n\"some string\"")) 1))
|
||||
(is (= (count (marginalia.parser/parse "(ns test (:require [marginalia.parser :as parser]))\n(defn foo [] ::parser/foo)")) 1)))
|
||||
(is (= (count (marginalia.parser/parse "(ns test)\n\"some string\"")) 1)))
|
||||
|
|
Loading…
Reference in a new issue