From dda6f3f6d42ec95a287f2467b976d8cbbc9c1624 Mon Sep 17 00:00:00 2001 From: Timothee Cour Date: Sun, 10 May 2020 00:23:01 -0700 Subject: [PATCH] `nim doc -r main` and `nim rst2html -r main` now call openDefaultBrowser (#14285) --- changelog.md | 1 + compiler/nim.nim | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/changelog.md b/changelog.md index cdd6c031a5..7907432a75 100644 --- a/changelog.md +++ b/changelog.md @@ -140,6 +140,7 @@ - `--hint:processing` is now supported and means `--hint:processing:on` (likewise with other hints and warnings), which is consistent with all other bool flags. (since 1.3.3). +- `nim doc -r main` and `nim rst2html -r main` now call openDefaultBrowser ## Tool changes diff --git a/compiler/nim.nim b/compiler/nim.nim index 80d9b66b69..dba5b8bc3c 100644 --- a/compiler/nim.nim +++ b/compiler/nim.nim @@ -24,7 +24,8 @@ import idents, lineinfos, cmdlinehelper, pathutils -include nodejs +from browsers import openDefaultBrowser +from nodejs import findNodeJs when hasTinyCBackend: import tccgen @@ -86,11 +87,21 @@ proc handleCmdLine(cache: IdentCache; conf: ConfigRef) = if conf.cmd == cmdRun: tccgen.run(conf, conf.arguments) if optRun in conf.globalOptions: - var ex = quoteShell conf.absOutFile - if conf.cmd == cmdCompileToJS: + let output = conf.absOutFile + let ex = quoteShell output + case conf.cmd + of cmdCompileToJS: execExternalProgram(conf, findNodeJs() & " " & ex & ' ' & conf.arguments) - else: + of cmdDoc, cmdRst2html: + if conf.arguments.len > 0: + # reserved for future use + rawMessage(conf, errGenerated, "'$1 cannot handle arguments" % [$conf.cmd]) + openDefaultBrowser($output) + of cmdCompileToC, cmdCompileToCpp, cmdCompileToOC: execExternalProgram(conf, ex & ' ' & conf.arguments) + else: + # support as needed + rawMessage(conf, errGenerated, "'$1 cannot handle --run" % [$conf.cmd]) when declared(GC_setMaxPause): GC_setMaxPause 2_000