Skip to content

Commit

Permalink
fixes #20132; fixes the broken jsondoc comand [backport] (#20135)
Browse files Browse the repository at this point in the history
* fixes #20132; fixes the broken jsondoc comand

* add testcase
  • Loading branch information
ringabout authored Aug 4, 2022
1 parent 7af484d commit 2aeb0d5
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 1 deletion.
3 changes: 2 additions & 1 deletion compiler/docgen.nim
Original file line number Diff line number Diff line change
Expand Up @@ -1360,9 +1360,10 @@ proc finishGenerateDoc*(d: var PDoc) =
var str: string
renderRstToOut(d[], resolved, str)
entry.json[entry.rstField] = %str
d.jEntriesFinal.add entry.json
d.jEntriesPre[i].rst = nil

d.jEntriesFinal.add entry.json # generates docs

proc add(d: PDoc; j: JsonItem) =
if j.json != nil or j.rst != nil: d.jEntriesPre.add j

Expand Down
11 changes: 11 additions & 0 deletions tests/misc/mjsondoc.nim
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
proc doSomething*(x, y: int): int =
## do something
x + y

const
a* = 1 ## echo 1234
b* = "test"

type
MyEnum* = enum
foo, bar
17 changes: 17 additions & 0 deletions tests/misc/trunner.nim
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,23 @@ sub/mmain.idx""", context
let cmd = fmt"{nim} r --backend:{mode} --hints:off --nimcache:{nimcache} {file}"
check execCmdEx(cmd) == ("ok3\n", 0)

block: # nim jsondoc # bug #20132
let file = testsDir / "misc/mjsondoc.nim"
let output = "nimcache_tjsondoc.json"
defer: removeFile(output)
let (msg, exitCode) = execCmdEx(fmt"{nim} jsondoc -o:{output} {file}")
doAssert exitCode == 0, msg

let data = parseJson(readFile(output))["entries"]
doAssert data.len == 4
let doSomething = data[0]
doAssert doSomething["name"].getStr == "doSomething"
doAssert doSomething["type"].getStr == "skProc"
doAssert doSomething["line"].getInt == 1
doAssert doSomething["col"].getInt == 0
doAssert doSomething["code"].getStr == "proc doSomething(x, y: int): int {.raises: [], tags: [], forbids: [].}"


block: # further issues with `--backend`
let file = testsDir / "misc/mbackend.nim"
var cmd = fmt"{nim} doc -b:cpp --hints:off --nimcache:{nimcache} {file}"
Expand Down

0 comments on commit 2aeb0d5

Please sign in to comment.