mirror of
https://github.com/kikito/inspect.lua.git
synced 2024-12-15 14:34:21 +00:00
newline & indent options
This commit is contained in:
parent
9054ee1051
commit
99e8c03959
18
README.md
18
README.md
@ -124,6 +124,24 @@ assert(inspect(t5, {depth = 2}) == [[{
|
|||||||
|
|
||||||
`options.depth` defaults to infinite (`math.huge`).
|
`options.depth` defaults to infinite (`math.huge`).
|
||||||
|
|
||||||
|
### options.newline & options.indent
|
||||||
|
|
||||||
|
These are the strings used by `inspect` to respectively add a newline and indent each level of a table.
|
||||||
|
|
||||||
|
By default, `options.newline` is `"\n"` and `options.indent` is `" "` (two spaces).
|
||||||
|
|
||||||
|
``` lua
|
||||||
|
local t = {a={b=1}}
|
||||||
|
|
||||||
|
assert(inspect(t) == [[{
|
||||||
|
a = {
|
||||||
|
b = 1
|
||||||
|
}
|
||||||
|
}]])
|
||||||
|
|
||||||
|
assert(inspect(t, {newline='@', indent="++"}), "{@++a = {@++++b = 1@++}@}"
|
||||||
|
```
|
||||||
|
|
||||||
### options.process
|
### options.process
|
||||||
|
|
||||||
`options.process` is a function which allow altering the passed object before transforming it into a string.
|
`options.process` is a function which allow altering the passed object before transforming it into a string.
|
||||||
|
@ -199,7 +199,7 @@ function Inspector:down(f)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function Inspector:tabify()
|
function Inspector:tabify()
|
||||||
self:puts("\n", string.rep(" ", self.level))
|
self:puts(self.newline, string.rep(self.indent, self.level))
|
||||||
end
|
end
|
||||||
|
|
||||||
function Inspector:commaControl(needsComma)
|
function Inspector:commaControl(needsComma)
|
||||||
@ -304,6 +304,8 @@ function inspect.inspect(root, options)
|
|||||||
options = options or {}
|
options = options or {}
|
||||||
local depth = options.depth or math.huge
|
local depth = options.depth or math.huge
|
||||||
local process = options.process
|
local process = options.process
|
||||||
|
local newline = options.newline or '\n'
|
||||||
|
local indent = options.indent or ' '
|
||||||
if process then
|
if process then
|
||||||
root = processRecursive(process, root, {})
|
root = processRecursive(process, root, {})
|
||||||
end
|
end
|
||||||
@ -314,6 +316,8 @@ function inspect.inspect(root, options)
|
|||||||
level = 0,
|
level = 0,
|
||||||
ids = setmetatable({}, idsMetaTable),
|
ids = setmetatable({}, idsMetaTable),
|
||||||
maxIds = setmetatable({}, maxIdsMetaTable),
|
maxIds = setmetatable({}, maxIdsMetaTable),
|
||||||
|
newline = newline,
|
||||||
|
indent = indent,
|
||||||
tableAppearances = countTableAppearances(root)
|
tableAppearances = countTableAppearances(root)
|
||||||
}, Inspector_mt)
|
}, Inspector_mt)
|
||||||
|
|
||||||
|
@ -197,6 +197,22 @@ describe( 'inspect', function()
|
|||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
describe('the newline option', function()
|
||||||
|
it('changes the substring used for newlines', function()
|
||||||
|
local t = {a={b=1}}
|
||||||
|
|
||||||
|
assert.equal(inspect(t, {newline='@'}), "{@ a = {@ b = 1@ }@}")
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
|
describe('the indent option', function()
|
||||||
|
it('changes the substring used for indenting', function()
|
||||||
|
local t = {a={b=1}}
|
||||||
|
|
||||||
|
assert.equal(inspect(t, {indent='>>>'}), "{\n>>>a = {\n>>>>>>b = 1\n>>>}\n}")
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
describe('the process option', function()
|
describe('the process option', function()
|
||||||
|
|
||||||
it('removes one element', function()
|
it('removes one element', function()
|
||||||
|
Loading…
Reference in New Issue
Block a user