From ef5303114c2cfebab83232988ae11f33301b4e00 Mon Sep 17 00:00:00 2001 From: Timothee Cour Date: Mon, 22 Feb 2021 02:10:34 -0800 Subject: [PATCH] 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 --- doc/prelude.rst | 29 ----------------------------- lib/pure/prelude.nim | 28 ++++++++++++++++------------ tools/kochdocs.nim | 1 - 3 files changed, 16 insertions(+), 42 deletions(-) delete mode 100644 doc/prelude.rst diff --git a/doc/prelude.rst b/doc/prelude.rst deleted file mode 100644 index 737e0f34ef..0000000000 --- a/doc/prelude.rst +++ /dev/null @@ -1,29 +0,0 @@ -Prelude -======= - -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] - - -Examples -======== - -Get the basic most common imports ready to start coding using ``prelude``: - -.. code-block:: nim - include std/prelude - - echo now() - echo getCurrentDir() - echo "Hello $1".format("World") - - -See also: -- `Sugar `_ diff --git a/lib/pure/prelude.nim b/lib/pure/prelude.nim index 5da6089618..f1728b5f72 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] - diff --git a/tools/kochdocs.nim b/tools/kochdocs.nim index ca0e07cccc..ab9911a0a0 100644 --- a/tools/kochdocs.nim +++ b/tools/kochdocs.nim @@ -143,7 +143,6 @@ lib/posix/termios.nim # some of these are include files so shouldn't be docgen'd ignoredModules = """ -lib/pure/prelude.nim lib/pure/future.nim lib/pure/collections/hashcommon.nim lib/pure/collections/tableimpl.nim