summaryrefslogtreecommitdiffstatshomepage
path: root/runtime/lua/vim/_defaults.lua
diff options
context:
space:
mode:
authorBranden Call <54908229+brandencall@users.noreply.github.com>2025-11-24 18:10:50 -0700
committerGitHub <noreply@github.com>2025-11-24 17:10:50 -0800
commite82aef2e22a57688dcc19a978cbe083349ad8a2a (patch)
tree17c48b580f38791491578d1143cc5808f59b1770 /runtime/lua/vim/_defaults.lua
parent60c35cc4c7b713c27e8bfdd196cbee46cf050bbb (diff)
feat(lsp): incremental-selection operator-pending mode #36575
Problem: LSP incremental selection provides default visual-mode keymaps for `an` and `in`. Operator-pending mode is not supported, so `dan` and `can` do not apply the operation. Solution: Modify selection_range() to be synchronous. Add operator-pending mappings.
Diffstat (limited to 'runtime/lua/vim/_defaults.lua')
-rw-r--r--runtime/lua/vim/_defaults.lua8
1 files changed, 8 insertions, 0 deletions
diff --git a/runtime/lua/vim/_defaults.lua b/runtime/lua/vim/_defaults.lua
index 1d3648ce4a..ddec0695f7 100644
--- a/runtime/lua/vim/_defaults.lua
+++ b/runtime/lua/vim/_defaults.lua
@@ -227,6 +227,14 @@ do
vim.lsp.buf.selection_range(-vim.v.count1)
end, { desc = 'vim.lsp.buf.selection_range(-vim.v.count1)' })
+ vim.keymap.set('o', 'an', function()
+ vim.lsp.buf.selection_range(vim.v.count1, 1000)
+ end, { desc = 'vim.lsp.buf.selection_range(vim.v.count1, timeout_ms)' })
+
+ vim.keymap.set('o', 'in', function()
+ vim.lsp.buf.selection_range(-vim.v.count1, 1000)
+ end, { desc = 'vim.lsp.buf.selection_range(-vim.v.count1, timeout_ms)' })
+
vim.keymap.set('n', 'gO', function()
vim.lsp.buf.document_symbol()
end, { desc = 'vim.lsp.buf.document_symbol()' })