mirror of
https://github.com/neovim/neovim.git
synced 2025-09-07 11:58:17 +00:00
refactor!: rename vim.pretty_print => vim.print
Problem: The function name `vim.pretty_print`: 1. is verbose, which partially defeats its purpose as sugar 2. does not draw from existing precedent or any sort of convention (except external projects like penlight or python?), which reduces discoverability, and degrades signaling about best practices. Solution: - Rename to `vim.print`. - Change the behavior so that 1. strings are printed without quotes 2. each arg is printed on its own line 3. tables are indented with 2 instead of 4 spaces - Example: :lua ='a', 'b', 42, {a=3} a b 42 { a = 3 } Comparison of alternatives: - `vim.print`: - pro: consistent with Lua's `print()` - pro: aligns with potential `nvim_print` API function which will replace nvim_echo, nvim_notify, etc. - con: behaves differently than Lua's `print()`, slightly misleading? - `vim.echo`: - pro: `:echo` has similar "pretty print" behavior. - con: inconsistent with Lua idioms. - `vim.p`: - pro: very short, fits with `vim.o`, etc. - con: not as discoverable as "echo" - con: less opportunity for `local p = vim.p` because of potential shadowing.
This commit is contained in:
@@ -8,6 +8,8 @@ local eval = helpers.eval
|
||||
local feed = helpers.feed
|
||||
local clear = helpers.clear
|
||||
local meths = helpers.meths
|
||||
local exec_lua = helpers.exec_lua
|
||||
local exec_capture = helpers.exec_capture
|
||||
local funcs = helpers.funcs
|
||||
local source = helpers.source
|
||||
local dedent = helpers.dedent
|
||||
@@ -15,7 +17,6 @@ local command = helpers.command
|
||||
local exc_exec = helpers.exc_exec
|
||||
local pcall_err = helpers.pcall_err
|
||||
local write_file = helpers.write_file
|
||||
local exec_capture = helpers.exec_capture
|
||||
local curbufmeths = helpers.curbufmeths
|
||||
local remove_trace = helpers.remove_trace
|
||||
|
||||
@@ -142,22 +143,29 @@ describe(':lua command', function()
|
||||
]]}
|
||||
end)
|
||||
|
||||
it('Can print results of =expr', function()
|
||||
helpers.exec_lua("x = 5")
|
||||
eq("5", helpers.exec_capture(':lua =x'))
|
||||
helpers.exec_lua("function x() return 'hello' end")
|
||||
eq([["hello"]], helpers.exec_capture(':lua = x()'))
|
||||
helpers.exec_lua("x = {a = 1, b = 2}")
|
||||
eq("{\n a = 1,\n b = 2\n}", helpers.exec_capture(':lua =x'))
|
||||
helpers.exec_lua([[function x(success)
|
||||
it('prints result of =expr', function()
|
||||
exec_lua("x = 5")
|
||||
eq("5", exec_capture(':lua =x'))
|
||||
exec_lua("function x() return 'hello' end")
|
||||
eq('hello', exec_capture(':lua = x()'))
|
||||
exec_lua("x = {a = 1, b = 2}")
|
||||
eq("{\n a = 1,\n b = 2\n}", exec_capture(':lua =x'))
|
||||
exec_lua([[function x(success)
|
||||
if success then
|
||||
return true, "Return value"
|
||||
else
|
||||
return false, nil, "Error message"
|
||||
end
|
||||
end]])
|
||||
eq([[true "Return value"]], helpers.exec_capture(':lua =x(true)'))
|
||||
eq([[false nil "Error message"]], helpers.exec_capture(':lua =x(false)'))
|
||||
eq(dedent[[
|
||||
true
|
||||
Return value]],
|
||||
exec_capture(':lua =x(true)'))
|
||||
eq(dedent[[
|
||||
false
|
||||
nil
|
||||
Error message]],
|
||||
exec_capture(':lua =x(false)'))
|
||||
end)
|
||||
end)
|
||||
|
||||
|
Reference in New Issue
Block a user