summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/plugins/mini-ai.lua
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2025-05-03 19:02:00 +0300
committerKyren223 <Kyren223@proton.me>2025-05-03 19:02:00 +0300
commit6fa6efbc9f6816957beb57dd721ab41658ce5175 (patch)
tree3f85f7d85288e0131721ff250b79986c59b783ed /.config/nvim/lua/plugins/mini-ai.lua
parentf13a62d3fd2884865398627d8a168e0c7df82ff4 (diff)
Replaced treesitter textobjects with mini.ai
Diffstat (limited to '.config/nvim/lua/plugins/mini-ai.lua')
-rw-r--r--.config/nvim/lua/plugins/mini-ai.lua27
1 files changed, 27 insertions, 0 deletions
diff --git a/.config/nvim/lua/plugins/mini-ai.lua b/.config/nvim/lua/plugins/mini-ai.lua
new file mode 100644
index 0000000..3e625fd
--- /dev/null
+++ b/.config/nvim/lua/plugins/mini-ai.lua
@@ -0,0 +1,27 @@
+return {
+ 'echasnovski/mini.ai',
+ event = 'VeryLazy',
+ opts = function()
+ local ai = require('mini.ai')
+ return {
+ n_lines = 500,
+ custom_textobjects = {
+ o = ai.gen_spec.treesitter({ -- code block
+ a = { '@block.outer', '@conditional.outer', '@loop.outer' },
+ i = { '@block.inner', '@conditional.inner', '@loop.inner' },
+ }),
+ f = ai.gen_spec.treesitter({ a = '@function.outer', i = '@function.inner' }), -- function
+ c = ai.gen_spec.treesitter({ a = '@class.outer', i = '@class.inner' }), -- class
+ t = { '<([%p%w]-)%f[^<%w][^<>]->.-</%1>', '^<.->().*()</[^/]->$' }, -- tags
+ d = { '%f[%d]%d+' }, -- digits
+ e = { -- Word with case
+ { '%u[%l%d]+%f[^%l%d]', '%f[%S][%l%d]+%f[^%l%d]', '%f[%P][%l%d]+%f[^%l%d]', '^[%l%d]+%f[^%l%d]' },
+ '^().*()$',
+ },
+ -- g = LazyVim.mini.ai_buffer, -- buffer
+ u = ai.gen_spec.function_call(), -- u for "Usage"
+ U = ai.gen_spec.function_call({ name_pattern = '[%w_]' }), -- without dot in function name
+ },
+ }
+ end,
+}