Include function names in embedded functions.
This commit is contained in:
parent
3c5db269d6
commit
69e5755c5f
16
function.lua
16
function.lua
|
@ -155,10 +155,8 @@ local function get_function_paramlist_and_body (info)
|
||||||
if type(function_params) ~= 'string' or type(function_body) ~= 'string' then
|
if type(function_params) ~= 'string' or type(function_body) ~= 'string' then
|
||||||
error(('[pretty.function/internal]: Could not find the function defined on lines %i-%i (indices %i-%i) for string:\n\n%s\n'):format(info.linedefined, info.lastlinedefined, start_line_index, end_line_index, str))
|
error(('[pretty.function/internal]: Could not find the function defined on lines %i-%i (indices %i-%i) for string:\n\n%s\n'):format(info.linedefined, info.lastlinedefined, start_line_index, end_line_index, str))
|
||||||
end
|
end
|
||||||
function_body = function_body:match('^%s*(.-)%s*$')
|
|
||||||
assert(type(function_body) == 'string')
|
|
||||||
-- And return them.
|
-- And return them.
|
||||||
return function_params, function_body
|
return function_params, function_body:match('^%s*(.-)%s*$'), function_name:match('^%s*(.-)%s*$')
|
||||||
end
|
end
|
||||||
|
|
||||||
local function get_function_string (...)
|
local function get_function_string (...)
|
||||||
|
@ -259,15 +257,15 @@ return function (value, depth, l, format_value)
|
||||||
local function_params, function_body = nil, '...'
|
local function_params, function_body = nil, '...'
|
||||||
|
|
||||||
if info.defined_how == 'string' or not info.doc then
|
if info.defined_how == 'string' or not info.doc then
|
||||||
local params_text, body = get_function_paramlist_and_body(info)
|
local _, body, name = get_function_paramlist_and_body(info)
|
||||||
local documentation, body = get_docs_from_function_body(body)
|
local docs, body = get_docs_from_function_body(body)
|
||||||
body = body:match('^%s*(.-)%s*$')
|
body = body:match('^%s*(.-)%s*$')
|
||||||
if #body <= NR_CHARS_IN_LONG_FUNCTION_BODY and not body:find '\n' and not body:find(FUNCTION_KEYWORD_MATCH) then
|
if #body <= NR_CHARS_IN_LONG_FUNCTION_BODY and not body:find '\n' and not body:find(FUNCTION_KEYWORD_MATCH) then
|
||||||
if info.defined_how == 'string' then function_body = body end
|
if info.defined_how == 'string' then function_body = body end
|
||||||
end
|
end
|
||||||
if body then
|
|
||||||
info.doc = documentation ~= '' and documentation
|
info.doc = not info.doc and docs and docs ~= '' and docs
|
||||||
end
|
info.name = not info.name and name and name ~= '' and name
|
||||||
end
|
end
|
||||||
|
|
||||||
if info.builtin and l.options.short_builtins then
|
if info.builtin and l.options.short_builtins then
|
||||||
|
@ -321,7 +319,7 @@ return function (value, depth, l, format_value)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- source
|
-- source
|
||||||
if info.doc then -- Do nothing
|
if info.doc or info.name then -- Do nothing
|
||||||
elseif info.defined_how == 'string' then
|
elseif info.defined_how == 'string' then
|
||||||
l[#l+1] = indent
|
l[#l+1] = indent
|
||||||
l[#l+1] = '-- Loaded from string'
|
l[#l+1] = '-- Loaded from string'
|
||||||
|
|
|
@ -375,6 +375,24 @@ format_test {
|
||||||
expect = 'function ()\n -- Loaded from string\nend',
|
expect = 'function ()\n -- Loaded from string\nend',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
format_test {
|
||||||
|
name = 'Embedding function with a nice name, includes name in documentation',
|
||||||
|
input = loadstring 'local function ahab () end; return ahab' (),
|
||||||
|
expect = 'function ()\n -- ahab\nend',
|
||||||
|
}
|
||||||
|
|
||||||
|
format_test {
|
||||||
|
name = 'Embedding function with a indexed name, includes name in documentation',
|
||||||
|
input = loadstring 'local obj = {}; function obj.ahab () return "isaac" end; return obj.ahab' (),
|
||||||
|
expect = 'function ()\n -- obj.ahab\n\n return "isaac"\nend',
|
||||||
|
}
|
||||||
|
|
||||||
|
format_test {
|
||||||
|
name = 'Embedding function with a OOP name, includes name in documentation',
|
||||||
|
input = loadstring 'local obj = {}; function obj:ahab () end; return obj.ahab' (),
|
||||||
|
expect = 'function (self)\n -- obj:ahab\nend',
|
||||||
|
}
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
-- Indent functions nicely
|
-- Indent functions nicely
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user