From 7fcf51248bb5c37cf49765bac020fa7bc86dea34 Mon Sep 17 00:00:00 2001 From: Ico Doornekamp Date: Mon, 21 Jan 2019 22:56:40 +0100 Subject: [PATCH] Added --docInternal option to allow 'nim doc' to include non-exported symbols --- compiler/commands.nim | 2 ++ compiler/docgen.nim | 5 ++++- compiler/options.nim | 1 + doc/advopt.txt | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/compiler/commands.nim b/compiler/commands.nim index 30521f9ca8..af775f5cd2 100644 --- a/compiler/commands.nim +++ b/compiler/commands.nim @@ -746,6 +746,8 @@ proc processSwitch*(switch, arg: string, pass: TCmdLinePass, info: TLineInfo; else: conf.cppCustomNamespace = "Nim" defineSymbol(conf.symbols, "cppCompileToNamespace", conf.cppCustomNamespace) + of "docinternal": + processOnOffSwitchG(conf, {optDocInternal}, arg, pass, info) else: if strutils.find(switch, '.') >= 0: options.setConfigVar(conf, switch, arg) else: invalidCmdLineOption(conf, pass, switch, info) diff --git a/compiler/docgen.nim b/compiler/docgen.nim index 33cd98f38f..4271a116ef 100644 --- a/compiler/docgen.nim +++ b/compiler/docgen.nim @@ -464,7 +464,10 @@ proc isVisible(d: PDoc; n: PNode): bool = # we cannot generate code for forwarded symbols here as we have no # exception tracking information here. Instead we copy over the comment # from the proc header. - result = {sfExported, sfFromGeneric, sfForward}*n.sym.flags == {sfExported} + if optDocInternal in d.conf.globalOptions: + result = {sfFromGeneric, sfForward}*n.sym.flags == {} + else: + result = {sfExported, sfFromGeneric, sfForward}*n.sym.flags == {sfExported} if result and containsOrIncl(d.emitted, n.sym.id): result = false elif n.kind == nkPragmaExpr: diff --git a/compiler/options.nim b/compiler/options.nim index d39b0a2682..54276f99d9 100644 --- a/compiler/options.nim +++ b/compiler/options.nim @@ -77,6 +77,7 @@ type # please make sure we have under 32 options optExcessiveStackTrace # fully qualified module filenames optShowAllMismatches # show all overloading resolution candidates optWholeProject # for 'doc2': output any dependency + optDocInternal # generate documentation for non-exported symbols optMixedMode # true if some module triggered C++ codegen optListFullPaths # use full paths in toMsgFilename, toFilename optNoNimblePath diff --git a/doc/advopt.txt b/doc/advopt.txt index f713839d85..58ed9edd01 100644 --- a/doc/advopt.txt +++ b/doc/advopt.txt @@ -58,6 +58,7 @@ Advanced options: --project document the whole project (doc2) --docSeeSrcUrl:url activate 'see source' for doc and doc2 commands (see doc.item.seesrc in config/nimdoc.cfg) + --docInternal also generate documentation for non-exported symbols --lineDir:on|off generation of #line directive on|off --embedsrc:on|off embeds the original source code as comments in the generated output