nvim-treesitter / nvim-treesitter-textobjects

Apache License 2.0
2.18k stars 195 forks source link

auto-center option for the move submodule #472

Open perrin4869 opened 1 year ago

perrin4869 commented 1 year ago

Is your feature request related to a problem? Please describe. Would be nice to have an option to automatically enable auto-centering when executing a move command, similar to the following mappings:

nmap G Gzz
nmap n nzz
nmap N Nzz
nmap } }zz
nmap { {zz
nmap ) )zz
nmap ( (zz

Describe the solution you'd like Have an option such as autocenter = true/false inside the move submodule that would execute zz after each move... or maybe better, have a TreesitterTextObjMove autocmd to be able to execute zz in after each move?

gmtstephane commented 8 months ago

Up on this. Is anyone able to somehow achieve this ?

gmtstephane commented 8 months ago

At the moment, i reset the binding in the config and use TS command directly . It works great

map(
    "n",
    "]]",
    ":TSTextobjectGotoNextStart @function.outer | lua vim.cmd('norm zz') <CR>",
    { remap = true, desc = "Go to next function and center the cursor" }
)

map(
    "n",
    "[[",
    ":TSTextobjectGotoPreviousStart @function.outer | lua vim.cmd('norm zz') <CR>",
    { remap = true, desc = "Go to previous function and center the cursor" }
)