mirror of
https://github.com/neovim/neovim.git
synced 2025-09-13 06:48:17 +00:00
TUI/paste: define paste function as Lua builtin
- Define in Lua so that it is compiled-in (available with `-u NONE`). TODO: Eventually we will want a 'pastefunc' option or some other way to override the default paste handler.
This commit is contained in:
@@ -93,6 +93,23 @@ local function _os_proc_children(ppid)
|
|||||||
return children
|
return children
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Default paste function.
|
||||||
|
local function _paste(data)
|
||||||
|
-- local eof = (data == {''})
|
||||||
|
local curline = vim.api.nvim_call_function('line', {'.'})
|
||||||
|
vim.api.nvim_buf_set_lines(
|
||||||
|
0,
|
||||||
|
curline,
|
||||||
|
curline,
|
||||||
|
false,
|
||||||
|
data)
|
||||||
|
vim.api.nvim_call_function('cursor', {curline + #data, 1})
|
||||||
|
-- if eof then
|
||||||
|
-- vim.api.nvim_command('redraw')
|
||||||
|
-- end
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
-- TODO(ZyX-I): Create compatibility layer.
|
-- TODO(ZyX-I): Create compatibility layer.
|
||||||
--{{{1 package.path updater function
|
--{{{1 package.path updater function
|
||||||
-- Last inserted paths. Used to clear out items from package.[c]path when they
|
-- Last inserted paths. Used to clear out items from package.[c]path when they
|
||||||
@@ -186,6 +203,7 @@ local module = {
|
|||||||
_update_package_paths = _update_package_paths,
|
_update_package_paths = _update_package_paths,
|
||||||
_os_proc_children = _os_proc_children,
|
_os_proc_children = _os_proc_children,
|
||||||
_os_proc_info = _os_proc_info,
|
_os_proc_info = _os_proc_info,
|
||||||
|
_paste = _paste,
|
||||||
_system = _system,
|
_system = _system,
|
||||||
schedule_wrap = schedule_wrap,
|
schedule_wrap = schedule_wrap,
|
||||||
}
|
}
|
||||||
|
@@ -132,7 +132,8 @@ static void tinput_wait_enqueue(void **argv)
|
|||||||
Object keys_array = ARRAY_OBJ(string_to_array(keys));
|
Object keys_array = ARRAY_OBJ(string_to_array(keys));
|
||||||
Array args = { .capacity = 1, .size = 1, .items = &keys_array };
|
Array args = { .capacity = 1, .size = 1, .items = &keys_array };
|
||||||
Error err = ERROR_INIT;
|
Error err = ERROR_INIT;
|
||||||
Object fret = nvim_call_function(STATIC_CSTR_AS_STRING("PasteCallback"),
|
Object fret
|
||||||
|
= nvim_execute_lua(STATIC_CSTR_AS_STRING("return vim._paste(...)"),
|
||||||
args, &err);
|
args, &err);
|
||||||
if ((fret.type == kObjectTypeInteger && fret.data.integer)
|
if ((fret.type == kObjectTypeInteger && fret.data.integer)
|
||||||
|| (fret.type == kObjectTypeBoolean && fret.data.boolean)
|
|| (fret.type == kObjectTypeBoolean && fret.data.boolean)
|
||||||
|
Reference in New Issue
Block a user