1
0
mirror of https://github.com/janet-lang/janet synced 2024-12-27 17:00:27 +00:00

Merge pull request #690 from sogaiu/specials-doc

Make doc work for special forms
This commit is contained in:
Calvin Rose 2021-05-09 13:54:46 -05:00 committed by GitHub
commit 8189b6fc11
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2891,6 +2891,13 @@
(if d (doc-format d) " no documentation found.") (if d (doc-format d) " no documentation found.")
"\n\n")) "\n\n"))
(defn- print-special-form-entry
[x]
(print "\n\n"
(string " special form\n\n")
(string " (" x " ...)\n\n")
(string " See https://janet-lang.org/docs/specials.html\n\n")))
(defn doc* (defn doc*
"Get the documentation for a symbol in a given environment. Function form of doc." "Get the documentation for a symbol in a given environment. Function form of doc."
[&opt sym] [&opt sym]
@ -2903,14 +2910,17 @@
(do (do
(def x (dyn sym)) (def x (dyn sym))
(if (not x) (if (not x)
(do (if (index-of sym '[break def do fn if quasiquote quote
(def [fullpath mod-kind] (module/find (string sym))) set splice unquote upscope var while])
(if-let [mod-env (in module/cache fullpath)] (print-special-form-entry sym)
(print-module-entry {:module true (do
:kind mod-kind (def [fullpath mod-kind] (module/find (string sym)))
:source-map [fullpath nil nil] (if-let [mod-env (in module/cache fullpath)]
:doc (in mod-env :doc)}) (print-module-entry {:module true
(print "symbol " sym " not found."))) :kind mod-kind
:source-map [fullpath nil nil]
:doc (in mod-env :doc)})
(print "symbol " sym " not found."))))
(print-module-entry x))) (print-module-entry x)))
# else # else