mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
fix(gx): move to to _init_default_mappings #24420
Problem: netrw may conflict with the Nvim default "gx" mapping. Solution: Initialize keymapping earlier by moving it to vim._init_default_mappings(). That also avoids needing to check maparg().
This commit is contained in:
parent
48085e40bb
commit
6a486c44e6
@ -1048,6 +1048,33 @@ function vim._init_default_mappings()
|
|||||||
-- Use : instead of <Cmd> so that ranges are supported. #19365
|
-- Use : instead of <Cmd> so that ranges are supported. #19365
|
||||||
map('n', '&', ':&&<CR>')
|
map('n', '&', ':&&<CR>')
|
||||||
|
|
||||||
|
-- gx
|
||||||
|
|
||||||
|
-- TODO: use vim.region() when it lands... #13896 #16843
|
||||||
|
local function get_visual_selection()
|
||||||
|
local save_a = vim.fn.getreginfo('a')
|
||||||
|
vim.cmd([[norm! "ay]])
|
||||||
|
local selection = vim.fn.getreg('a', 1)
|
||||||
|
vim.fn.setreg('a', save_a)
|
||||||
|
return selection
|
||||||
|
end
|
||||||
|
|
||||||
|
local function do_open(uri)
|
||||||
|
local _, err = vim.ui.open(uri)
|
||||||
|
if err then
|
||||||
|
vim.notify(err, vim.log.levels.ERROR)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local gx_desc =
|
||||||
|
'Opens filepath or URI under cursor with the system handler (file explorer, web browser, …)'
|
||||||
|
vim.keymap.set({ 'n' }, 'gx', function()
|
||||||
|
do_open(vim.fn.expand('<cfile>'))
|
||||||
|
end, { desc = gx_desc })
|
||||||
|
vim.keymap.set({ 'x' }, 'gx', function()
|
||||||
|
do_open(get_visual_selection())
|
||||||
|
end, { desc = gx_desc })
|
||||||
|
|
||||||
-- menus
|
-- menus
|
||||||
|
|
||||||
-- TODO VimScript, no l10n
|
-- TODO VimScript, no l10n
|
||||||
|
@ -18,31 +18,3 @@ vim.api.nvim_create_user_command('InspectTree', function(cmd)
|
|||||||
vim.treesitter.inspect_tree()
|
vim.treesitter.inspect_tree()
|
||||||
end
|
end
|
||||||
end, { desc = 'Inspect treesitter language tree for buffer', count = true })
|
end, { desc = 'Inspect treesitter language tree for buffer', count = true })
|
||||||
|
|
||||||
-- TODO: use vim.region() when it lands... #13896 #16843
|
|
||||||
local function get_visual_selection()
|
|
||||||
local save_a = vim.fn.getreginfo('a')
|
|
||||||
vim.cmd([[norm! "ay]])
|
|
||||||
local selection = vim.fn.getreg('a', 1)
|
|
||||||
vim.fn.setreg('a', save_a)
|
|
||||||
return selection
|
|
||||||
end
|
|
||||||
|
|
||||||
local gx_desc =
|
|
||||||
'Opens filepath or URI under cursor with the system handler (file explorer, web browser, …)'
|
|
||||||
local function do_open(uri)
|
|
||||||
local _, err = vim.ui.open(uri)
|
|
||||||
if err then
|
|
||||||
vim.notify(err, vim.log.levels.ERROR)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if vim.fn.maparg('gx', 'n') == '' then
|
|
||||||
vim.keymap.set({ 'n' }, 'gx', function()
|
|
||||||
do_open(vim.fn.expand('<cfile>'))
|
|
||||||
end, { desc = gx_desc })
|
|
||||||
end
|
|
||||||
if vim.fn.maparg('gx', 'x') == '' then
|
|
||||||
vim.keymap.set({ 'x' }, 'gx', function()
|
|
||||||
do_open(get_visual_selection())
|
|
||||||
end, { desc = gx_desc })
|
|
||||||
end
|
|
||||||
|
Loading…
Reference in New Issue
Block a user