Compare commits
2 commits
d8949f0cee
...
9f4b7f8e9f
Author | SHA1 | Date | |
---|---|---|---|
9f4b7f8e9f | |||
c310916b13 |
4 changed files with 178 additions and 82 deletions
|
@ -55,6 +55,39 @@ with final.pkgs.lib; let
|
|||
flash-nvim
|
||||
which-key-nvim
|
||||
gitsigns-nvim
|
||||
|
||||
# Treesitter
|
||||
(nvim-treesitter.withPlugins (
|
||||
plugins:
|
||||
with plugins; [
|
||||
bash
|
||||
diff
|
||||
html
|
||||
gitignore
|
||||
javascript
|
||||
jsdoc
|
||||
json
|
||||
jsonc
|
||||
just
|
||||
lua
|
||||
luadoc
|
||||
markdown
|
||||
markdown_inline
|
||||
nix
|
||||
just
|
||||
printf
|
||||
python
|
||||
query
|
||||
regex
|
||||
toml
|
||||
tsx
|
||||
typescript
|
||||
vim
|
||||
vimdoc
|
||||
xml
|
||||
yaml
|
||||
]
|
||||
))
|
||||
];
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
|
|
|
@ -27,6 +27,8 @@ return {
|
|||
local icons = require('icons')
|
||||
local mkKey = MarleyVim.wkSpec(require('colors').git)
|
||||
require('which-key').add({
|
||||
{
|
||||
buffer = buf,
|
||||
mkKey(']h', function()
|
||||
if vim.wo.diff then
|
||||
vim.cmd.normal({ ']c', bang = true })
|
||||
|
@ -123,6 +125,7 @@ return {
|
|||
'',
|
||||
{ mode = { 'o', 'x' }, desc = 'select hunk' }
|
||||
),
|
||||
},
|
||||
})
|
||||
end,
|
||||
})
|
||||
|
|
5
nvim/lua/plugins/treesitter/init.lua
Normal file
5
nvim/lua/plugins/treesitter/init.lua
Normal file
|
@ -0,0 +1,5 @@
|
|||
local req = MarleyVim.local_require('plugins.treesitter')
|
||||
|
||||
return {
|
||||
req('nvim-treesitter'),
|
||||
}
|
55
nvim/lua/plugins/treesitter/nvim-treesitter.lua
Normal file
55
nvim/lua/plugins/treesitter/nvim-treesitter.lua
Normal file
|
@ -0,0 +1,55 @@
|
|||
return {
|
||||
event = { 'BufReadPost', 'BufWritePost', 'BufNewFile', 'DeferredUIEnter' },
|
||||
keys = {
|
||||
{ '<C-space>', desc = 'increment selection' },
|
||||
{ '<BS>', desc = 'decrement selection', mode = 'x' },
|
||||
},
|
||||
before = function()
|
||||
require('lz.n').trigger_load('which-key.nvim')
|
||||
end,
|
||||
after = function()
|
||||
require('nvim-treesitter.configs').setup({
|
||||
highlight = { enable = true },
|
||||
indent = { enable = true },
|
||||
incremental_selection = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
init_selection = '<C-space>',
|
||||
node_incremental = '<C-space>',
|
||||
scope_incremental = false,
|
||||
node_decremental = '<BS>',
|
||||
},
|
||||
},
|
||||
textobjects = {
|
||||
move = {
|
||||
enable = true,
|
||||
goto_next_start = {
|
||||
[']f'] = '@function.outer',
|
||||
[']c'] = '@class.outer',
|
||||
[']a'] = '@parameter.inner',
|
||||
},
|
||||
goto_next_end = {
|
||||
[']F'] = '@function.outer',
|
||||
[']C'] = '@class.outer',
|
||||
[']A'] = '@parameter.inner',
|
||||
},
|
||||
goto_previous_tart = {
|
||||
['[f'] = '@function.outer',
|
||||
['[c'] = '@class.outer',
|
||||
['[a'] = '@parameter.inner',
|
||||
},
|
||||
goto_previous_end = {
|
||||
['[F'] = '@function.outer',
|
||||
['[C'] = '@class.outer',
|
||||
['[A'] = '@parameter.inner',
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
require('which-key').add({
|
||||
{ '<BS>', desc = 'decrement selection', mode = 'x' },
|
||||
{ '<C-space>', desc = 'increment selection', mode = { 'x', 'n' } },
|
||||
})
|
||||
end,
|
||||
}
|
Loading…
Reference in a new issue