add new setting for copying the selection (instead of cutting).

This commit is contained in:
L3MON4D3 2024-07-12 09:07:42 +02:00 committed by L3MON4D3
parent b84eeb3641
commit d48c8ed8e1
4 changed files with 26 additions and 4 deletions

View file

@ -65,6 +65,12 @@ c = {
conf.history = nil
end
if user_config.store_selection_keys ~= nil then
conf.cut_selection_keys = user_config.store_selection_keys
user_config.store_selection_keys = nil
end
for k, v in pairs(user_config) do
conf[k] = v
end
@ -125,15 +131,24 @@ c = {
end)
end
if session.config.store_selection_keys then
if session.config.cut_selection_keys then
vim.cmd(
string.format(
[[xnoremap <silent> %s %s]],
session.config.store_selection_keys,
session.config.cut_selection_keys,
require("luasnip.util.select").select_keys
)
)
end
if session.config.copy_selection_keys then
vim.cmd(
string.format(
[[xnoremap <silent> %s %s]],
session.config.copy_selection_keys,
require("luasnip.util.select").copy_keys
)
)
end
end,
}

View file

@ -110,7 +110,11 @@ return {
-- see :h User, event should never be triggered(except if it is `doautocmd`'d)
region_check_events = nil,
delete_check_events = nil,
store_selection_keys = nil, -- Supossed to be the same as the expand shortcut
-- preserve default of store_selection_keys.
copy_selection_keys = nil,
cut_selection_keys = nil,
ext_opts = {
[types.textNode] = {
active = { hl_group = "LuasnipTextNodeActive" },

View file

@ -844,7 +844,8 @@ local ls_lazy = {
config = function() return require("luasnip.config") end,
multi_snippet = function() return require("luasnip.nodes.multiSnippet").new_multisnippet end,
snippet_source = function() return require("luasnip.session.snippet_collection.source") end,
select_keys = function() return require("luasnip.util.select").select_keys end
select_keys = function() return require("luasnip.util.select").select_keys end,
copy_keys = function() return require("luasnip.util.select").copy_keys end
}
ls = lazy_table({

View file

@ -61,6 +61,8 @@ end
-- Afterwards, we can just use <cmd>lua, which does not change the mode.
M.select_keys =
[[:lua require("luasnip.util.select").pre_cut()<Cr>gv"zs<cmd>lua require('luasnip.util.select').post_cut("z")<Cr>]]
M.copy_keys =
[[:lua require("luasnip.util.select").pre_cut()<Cr>gv"zy<cmd>lua require('luasnip.util.select').post_cut("z")<Cr>]]
local saved_registers
local lines