Split or join list-like syntax constructs. like g,
and gj
from the venerable
old vim-mode-plus.
looking for something more...
- mature? treesj
- generic? ts-node-action
- bramvim? splitjoin.vim
return { 'bennypowers/splitjoin.nvim',
lazy = true,
keys = {
{ 'gj', function() require'splitjoin'.join() end, desc = 'Join the object under cursor' },
{ 'g,', function() require'splitjoin'.split() end, desc = 'Split the object under cursor' },
},
}
There are currently two options, the global default_indent
serves as a
fallback indent when a language does not have an indent configured. The
languages
table lets you specify or modify language rules. Each language table
contains an options
key which can have the following members:
name | type | description |
---|---|---|
default_indent |
string | indent to apply when splitting |
nodes |
table<string, table> | options for this node |
nodes[name].padding |
string | padding to apply when joining |
nodes[name].sep_first |
boolean | whether to place the separator first when splitting |
See languages/*/options.lua
split()
Separate the construct under the cursor into multiple lines
Before:
[1, 2, 3]
After:
[
1,
2,
3,
]
join()
Join the construct under the cursor into a single line
Before:
[
1,
2,
3,
]
After:
[1, 2, 3]