Minor changes to imports
This commit is contained in:
parent
bb67701f8f
commit
3ea1aa2efe
13
README.md
13
README.md
|
@ -50,9 +50,9 @@ create `pretty`.
|
|||
2. Lua-compatible output.
|
||||
3. Customization.
|
||||
|
||||
I'd rather have good defaults than provide a ton of customization options. And
|
||||
if some structure cannot be represented in Lua, I will rather extend the
|
||||
syntax, than lose the info.
|
||||
I'd rather have good defaults than provide a ton of customization options. If an
|
||||
structure avoids easy representation in Lua, I'd rather extend the syntax, than
|
||||
lose the info.
|
||||
|
||||
Another aspect where `pretty` shines is in exploratory programming, when
|
||||
attempting to avoid reliance on outside documentation. The amount of information
|
||||
|
@ -98,7 +98,7 @@ must be a table.
|
|||
`pretty` is sure to complain if you give it an unknown option, or if you give an
|
||||
option a bad value.
|
||||
|
||||
- `indent: string`: The string to indent with. Four spaces (` `) by default.
|
||||
- `indent: string`: The string to indent with. Four spaces by default.
|
||||
|
||||
## TODO
|
||||
|
||||
|
@ -144,5 +144,6 @@ you have ideas for improvements, or find an issue.
|
|||
|
||||
## License
|
||||
|
||||
This project is licensed under the BeerWare license - Please see the
|
||||
[LICENSE.txt](https://gitfub.space/Jmaa/pretty/blob/master/LICENSE.txt) file for details.
|
||||
The license is the BeerWare license - Please see the
|
||||
[LICENSE.txt](https://gitfub.space/Jmaa/pretty/blob/master/LICENSE.txt) file for
|
||||
details.
|
||||
|
|
39
pretty.lua
39
pretty.lua
|
@ -37,33 +37,12 @@ a table, we have a better idea, but then the output would be cluttered.
|
|||
--]=]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
-- Import files
|
||||
|
||||
-- Ensure loading library, if it exists, no matter where pretty.lua was loaded from.
|
||||
|
||||
-- Load the library component
|
||||
local format_number, format_function, format_string, analyze_structure, TABLE_TYPE
|
||||
local import
|
||||
do
|
||||
local thispath = ... and select('1', ...):match('.+%.') or ''
|
||||
local function import (name, ignore_failure)
|
||||
local was_loaded, lib_or_error = pcall(require, thispath..name)
|
||||
if not was_loaded then
|
||||
if ignore_failure then return nil end
|
||||
error('[pretty]: Could not load vital library: '..name..'.lua:\n\t'..lib_or_error)
|
||||
end
|
||||
return lib_or_error
|
||||
end
|
||||
|
||||
-- Load number and function formatting
|
||||
-- Will use a very simple number formatting, if number.lua is not available.
|
||||
-- Will use a very simple function formatting, if function.lua is not available.
|
||||
-- Will use a very simple string formatting, if string.lua is not available.
|
||||
format_number = import('number', true) or function (value, _, l) l[#l+1] = tostring(value) end
|
||||
format_function = import('function', true) or function (value, _, l) l[#l+1] = 'function (...) --[['..tostring(value):sub(11)..']] end' end
|
||||
format_string = import('pstring', true) or function (value, _, l) l[#l+1] = '[['..value..']]' end
|
||||
|
||||
-- Load other stuff
|
||||
analyze_structure = import 'analyze_structure'
|
||||
TABLE_TYPE = import 'table_type'
|
||||
import = function (name, ignore_failure) return require(thispath..name) end
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
@ -393,6 +372,11 @@ local function fix_seperator_info (l, indent_char, max_depth)
|
|||
end
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
local analyze_structure = import 'analyze_structure'
|
||||
local TABLE_TYPE = import 'table_type'
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
-- Formatting stuff
|
||||
|
||||
|
@ -524,12 +508,12 @@ end
|
|||
local TYPE_TO_FORMAT_FUNC = {
|
||||
['nil'] = format_primitive,
|
||||
['boolean'] = format_primitive,
|
||||
['number'] = format_number,
|
||||
['string'] = format_string,
|
||||
['number'] = import 'number',
|
||||
['string'] = import 'pstring',
|
||||
['thread'] = format_coroutine,
|
||||
['table'] = format_table,
|
||||
|
||||
['function'] = format_function,
|
||||
['function'] = import 'function',
|
||||
['userdata'] = format_primitive, -- TODO
|
||||
['cdata'] = format_primitive, -- TODO & Luajit only
|
||||
}
|
||||
|
@ -537,6 +521,7 @@ local TYPE_TO_FORMAT_FUNC = {
|
|||
function format_value (value, depth, l)
|
||||
assert(type(depth) == 'number' and type(l) == 'table')
|
||||
local formatting = TYPE_TO_FORMAT_FUNC[type(value)]
|
||||
--print(value, formatting)
|
||||
if formatting then
|
||||
formatting(value, depth, l, format_value)
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue
Block a user