Files
Nim/doc/tools.md
Andrey Makarov 417b90a7e5 Improve Markdown code blocks & start moving docs to Markdown style (#19954)
- add additional parameters parsing (other implementations will just
  ignore them). E.g. if in RST we have:

  .. code:: nim
     :test: "nim c $1"

     ...

  then in Markdown that will be:

  ```nim test="nim c $1"
  ...
  ```

- implement Markdown interpretation of additional indentation which is
  less than 4 spaces (>=4 spaces is a code block but it's not
implemented yet). RST interpretes it as quoted block, for Markdown it's
just normal paragraphs.
- add separate `md2html` and `md2tex` commands. This is to separate
  Markdown behavior in cases when it diverges w.r.t. RST significantly —
most conspicously like in the case of additional indentation above, and
also currently the contradicting inline rule of Markdown is also turned
on only in `md2html` and `md2tex`. **Rationale:** mixing Markdown and
RST arbitrarily is a way to nowhere, we need to provide a way to fix the
particular behavior. Note that still all commands have **both** Markdown
and RST features **enabled**. In this PR `*.nim` files can be processed
only in Markdown mode, while `md2html` is for `*.md` files and
`rst2html` for `*.rst` files.
- rename `*.rst` files to `.*md` as our current default behavior is
  already Markdown-ish
- convert code blocks in `docgen.rst` to Markdown style as an example.
  Other code blocks will be converted in the follow-up PRs
- fix indentation inside Markdown code blocks — additional indentation
  is preserved there
- allow more than 3 backticks open/close blocks (tildas \~ are still not
  allowed to avoid conflict with RST adornment headings) see also
https://github.com/nim-lang/RFCs/issues/355
- better error messages
- (other) fix a bug that admonitions cannot be used in sandbox mode; fix
  annoying warning on line 2711
2022-07-15 19:27:54 +02:00

1.7 KiB

======================== Tools available with Nim

.. default-role:: code .. include:: rstcommon.rst

The standard distribution ships with the following tools:

  • | Hot code reloading <hcr.html>_ | The "Hot code reloading" feature is built into the compiler but has its own document explaining how it works.

  • | Documentation generator <docgen.html>_ | The builtin document generator nim doc:cmd: generates HTML documentation from .nim source files.

  • | Nimsuggest for IDE support <nimsuggest.html>_ | Through the nimsuggest:cmd: tool, any IDE can query a .nim source file and obtain useful information like the definition of symbols or suggestions for completion.

  • | C2nim <https://github.com/nim-lang/c2nim/blob/master/doc/c2nim.rst>_ | C to Nim source converter. Translates C header files to Nim.

  • | niminst <niminst.html>_ | niminst is a tool to generate an installer for a Nim program.

  • | nimgrep <nimgrep.html>_ | Nim search and replace utility.

  • | nimpretty | nimpretty:cmd: is a Nim source code beautifier, to format code according to the official style guide.

  • | testament <https://nim-lang.github.io/Nim/testament.html>_ | testament:cmd: is an advanced automatic unittests runner for Nim tests, is used for the development of Nim itself, offers process isolation for your tests, it can generate statistics about test cases, supports multiple targets (C, JS, etc), simulated Dry-Runs <https://en.wikipedia.org/wiki/Dry_run_(testing)>_, has logging, can generate HTML reports, skip tests from a file, and more, so can be useful to run your tests, even the most complex ones.