diff options
-rw-r--r-- | compiler/docgen.nim | 2 | ||||
-rw-r--r-- | tests/misc/trunner.nim | 16 |
2 files changed, 18 insertions, 0 deletions
diff --git a/compiler/docgen.nim b/compiler/docgen.nim index 8c95692df..1c03762fd 100644 --- a/compiler/docgen.nim +++ b/compiler/docgen.nim @@ -1617,6 +1617,8 @@ proc writeOutputJson*(d: PDoc, useWarning = false) = if optStdout in d.conf.globalOptions: write(stdout, $content) else: + let dir = d.destFile.splitFile.dir + createDir(dir) var f: File if open(f, d.destFile, fmWrite): write(f, $content) diff --git a/tests/misc/trunner.nim b/tests/misc/trunner.nim index 541e3a390..add92cbfd 100644 --- a/tests/misc/trunner.nim +++ b/tests/misc/trunner.nim @@ -232,6 +232,22 @@ sub/mmain.idx""", context doAssert doSomething["col"].getInt == 0 doAssert doSomething["code"].getStr == "proc doSomething(x, y: int): int {.raises: [], tags: [], forbids: [].}" + block: # nim jsondoc # bug #11953 + let file = testsDir / "misc/mjsondoc.nim" + let destDir = testsDir / "misc/htmldocs" + removeDir(destDir) + defer: removeDir(destDir) + let (msg, exitCode) = execCmdEx(fmt"{nim} jsondoc {file}") + doAssert exitCode == 0, msg + + let data = parseJson(readFile(destDir / "mjsondoc.json"))["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" |