From 208ddaa76019af05d1e0f352912dab38ceedad6b Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Fri, 23 Feb 2024 15:19:26 +0100 Subject: Add nvim-ts article --- src/blog/nvim-ts/final.lua | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/blog/nvim-ts/final.lua (limited to 'src/blog/nvim-ts/final.lua') diff --git a/src/blog/nvim-ts/final.lua b/src/blog/nvim-ts/final.lua new file mode 100644 index 0000000..948ee30 --- /dev/null +++ b/src/blog/nvim-ts/final.lua @@ -0,0 +1,28 @@ +local ts_utils = require('nvim-treesitter.ts_utils') + +local function map(lhs, rhs) + vim.keymap.set('n', lhs, function() + local node = ts_utils.get_node_at_cursor() + if node == nil then + error('No tree-sitter parser found.') + end + + while node ~= nil and node:type() ~= 'operation' do + node = node:parent() + end + + if node ~= nil then + local sr, sc, er, ec = node:child(0):range() + vim.api.nvim_buf_set_text(0, sr, sc, er, ec, { rhs }) + end + end, { + buffer = true, + noremap = true, + silent = true, + }) +end + +map('p', 'pick') +map('r', 'reword') +map('s', 'squash') +map('f', 'fixup') -- cgit v1.2.3