summary refs log tree commit diff stats
path: root/lib/pure
diff options
context:
space:
mode:
authorTimothee Cour <timothee.cour2@gmail.com>2021-02-22 02:10:34 -0800
committerGitHub <noreply@github.com>2021-02-22 11:10:34 +0100
commitef5303114c2cfebab83232988ae11f33301b4e00 (patch)
treeb4b1b9049158739931fb78a661af5c6b4569ee25 /lib/pure
parentf07a072691f0ad8675856ddbb93fc463643103ee (diff)
downloadNim-ef5303114c2cfebab83232988ae11f33301b4e00.tar.gz
fix prelude regression refs #16238: `include prelude` doesn't interfere with `nim doc` (#17111)
* fix bug1 from #16238 nim doc now works with include prelude

* fix for windows

* fixup
Diffstat (limited to 'lib/pure')
-rw-r--r--lib/pure/prelude.nim28
1 files changed, 16 insertions, 12 deletions
diff --git a/lib/pure/prelude.nim b/lib/pure/prelude.nim
index 5da608961..f1728b5f7 100644
--- a/lib/pure/prelude.nim
+++ b/lib/pure/prelude.nim
@@ -7,18 +7,22 @@
 #    distribution, for details about the copyright.
 #
 
-## This is an include file that simply imports common modules for your
-## convenience:
-##
-## .. code-block:: nim
-##   include std/prelude
-##
-## Same as:
-##
-## .. code-block:: nim
-##   import std/[os, strutils, times, parseutils, hashes, tables, sets, sequtils, parseopt]
+when defined(nimdoc) and isMainModule:
+  from std/compileSettings import nil
+  when compileSettings.querySetting(compileSettings.SingleValueSetting.projectFull) == currentSourcePath:
+    ## This is an include file that simply imports common modules for your convenience.
+    runnableExamples:
+      include std/prelude
+        # same as:
+        # import std/[os, strutils, times, parseutils, hashes, tables, sets, sequtils, parseopt]
+      let x = 1
+      assert "foo $# $#" % [$x, "bar"] == "foo 1 bar"
+      assert toSeq(1..3) == @[1, 2, 3]
+      when not defined(js) or defined(nodejs):
+        assert getCurrentDir().len > 0
+        assert ($now()).startsWith "20"
 
-# xxx deduplicate with prelude.rst
+  # xxx `nim doc -b:js -d:nodejs --doccmd:-d:nodejs lib/pure/prelude.nim` fails for some reason
+  # specific to `nim doc`, but the code otherwise works with nodejs.
 
 import std/[os, strutils, times, parseutils, hashes, tables, sets, sequtils, parseopt]
-