Module pl.pretty

Pretty-printing Lua tables.

Also provides a sandboxed Lua table reader and a function to present large numbers in human-friendly format.

Dependencies: pl.utils, pl.lexer, pl.stringx, debug

Functions

read (s) Read a string representation of a Lua table.
load (s[, env[, paranoid]]) Read a Lua chunk.
write (tbl[, space[, not_clever]]) Create a string representation of a Lua table.
dump (t[, filename]) Dump a Lua table out to a file or stdout.
debug (...) Dump a series of arguments to stdout for debug purposes.
number (num[, kind[, prec]]) Format large numbers nicely for human consumption.


Functions

read (s)
Read a string representation of a Lua table. This function loads and runs the string as Lua code, but bails out if it contains a function definition. Loaded string is executed in an empty environment.

Parameters:

  • s string string to read in {...} format, possibly with some whitespace before or after the curly braces. A single line comment may be present at the beginning.

Returns:

    a table in case of success. If loading the string failed, return nil and error message. If executing loaded string failed, return nil and the error it raised.
load (s[, env[, paranoid]])
Read a Lua chunk.

Parameters:

  • s string Lua code.
  • env table environment used to run the code, empty by default. (optional)
  • paranoid boolean abort loading if any looping constructs a found in the code and disable string methods. (optional)

Returns:

    the environment in case of success or nil and syntax or runtime error if something went wrong.
write (tbl[, space[, not_clever]])
Create a string representation of a Lua table. This function never fails, but may complain by returning an extra value. Normally puts out one item per line, using the provided indent; set the second parameter to an empty string if you want output on one line.

NOTE: this is NOT a serialization function, not a full blown debug function. Checkout out respectively the serpent or inspect Lua modules for that if you need them.

Parameters:

  • tbl table Table to serialize to a string.
  • space string The indent to use. Defaults to two spaces; pass an empty string for no indentation. (optional)
  • not_clever boolean Pass true for plain output, e.g {['key']=1}. Defaults to false. (optional)

Returns:

  1. a string
  2. an optional error message
dump (t[, filename])
Dump a Lua table out to a file or stdout.

Parameters:

  • t table The table to write to a file or stdout.
  • filename string File name to write too. Defaults to writing to stdout. (optional)
debug (...)
Dump a series of arguments to stdout for debug purposes. This function is attached to the module table __call method, to make it extra easy to access. So the full:

 print(require("pl.pretty").write({...}))

Can be shortened to:

 require"pl.pretty" (...)

Any nil entries will be printed as "<nil>" to make them explicit.

Parameters:

  • ... the parameters to dump to stdout.

Usage:

    -- example debug output
    require"pl.pretty" ("hello", nil, "world", { bye = "world", true} )
    
    -- output:
    {
      ["arg 1"] = "hello",
      ["arg 2"] = "<nil>",
      ["arg 3"] = "world",
      ["arg 4"] = {
        true,
        bye = "world"
      }
    }
number (num[, kind[, prec]])
Format large numbers nicely for human consumption.

Parameters:

  • num number a number.
  • kind string one of 'M' (memory in KiB, MiB, etc.), 'N' (postfixes are 'K', 'M' and 'B'), or 'T' (use commas as thousands separator), 'N' by default. (optional)
  • prec integer number of digits to use for 'M' and 'N', 1 by default. (optional)
generated by LDoc 1.5.0