Trying stuff

This commit is contained in:
2025-12-09 22:10:16 +00:00
parent 282301e206
commit aded597ffe

View File

@@ -27,13 +27,67 @@ vim.keymap.set('v', 'p', '"zdP', { desc = 'Paste over selection without yanking
vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' }) vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' })
vim.keymap.set('n', '<Leader>c', function() vim.keymap.set('n', '<Leader>c', function()
local node = require('nvim-treesitter.ts_utils').get_node_at_cursor() vim.treesitter.inspect_tree()
if node then end, { desc = 'Treesitter' })
print(node:type())
vim.keymap.set('n', '<C-S-D>', function()
local node = vim.treesitter.get_node {}
local range = { vim.treesitter.get_node_range(node) }
vim.api.nvim_win_set_cursor(0, { range[3] + 1, range[4] - 1 })
vim.fn.setpos("'x", { 0, range[1] + 1, range[2] + 1, 0 })
vim.cmd.normal 'v`x'
end, { desc = 'Select surrounding treesitter node' })
function get_node_around(node, start_pos, end_pos)
local range = { vim.treesitter.get_node_range(node) }
if
(range[1] == start_pos[1] and range[2] > start_pos[2])
or (range[3] == end_pos[1] and range[4] < end_pos[2])
or (range[1] > start_pos[1])
or (range[3] < end_pos[1])
then
get_node_around(node:parent(), start_pos, end_pos)
elseif range[3] == end_pos[2] and range[4] < end_pos[3] then
get_node_around(node:parent(), start_pos, end_pos)
else else
print 'No node found at cursor' return node
end end
end, { desc = 'Log node' }) end
vim.keymap.set('v', '<C-S-D>', function()
local start_pos = vim.api.nvim_win_get_cursor(0)
local end_pos = vim.fn.getpos "'>"
end_pos = { end_pos[2], end_pos[3] }
local node = vim.treesitter.get_node()
local parent = get_node_around(node:parent(), start_pos, end_pos)
if not parent then
return
end
local range = { vim.treesitter.get_node_range(parent) }
vim.api.nvim_win_set_cursor(0, { range[3] + 1, range[4] - 1 })
vim.fn.setpos("'x", { 0, range[1] + 1, range[2] + 1, 0 })
vim.cmd.normal 'i'
vim.cmd.normal 'v`x'
end, { desc = 'Select surrounding treesitter node' })
vim.keymap.set({ 'n' }, '<C-S-h>', function()
local node = vim.treesitter.get_node()
local prev_node = node:prev_sibling()
if prev_node == nil then
return
end
require('nvim-treesitter.ts_utils').swap_nodes(node, prev_node)
end, { desc = 'Swap with node to the left' })
vim.keymap.set({ 'n' }, '<C-S-l>', function()
local node = vim.treesitter.get_node()
local next_node = node:next_sibling()
if next_node == nil then
return
end
require('nvim-treesitter.ts_utils').swap_nodes(node, next_node)
end, { desc = 'Swap with node to the right' })
-- vim.keymap.set('n', '<C-S-j>', '<C-w>J', { desc = 'Move window to the lower' })
-- vim.keymap.set('n', '<C-S-k>', '<C-w>K', { desc = 'Move window to the upper' })
-- Keybinds to make split navigation easier. -- Keybinds to make split navigation easier.
-- Use CTRL+<hjkl> to switch between windows -- Use CTRL+<hjkl> to switch between windows
@@ -84,11 +138,6 @@ vim.keymap.set({ 'i', 's' }, '<C-H>', function()
end end
end, { desc = 'Go back a snippet slot', silent = true }) end, { desc = 'Go back a snippet slot', silent = true })
vim.keymap.set('n', '<C-S-h>', '<C-w>H', { desc = 'Move window to the left' })
vim.keymap.set('n', '<C-S-l>', '<C-w>L', { desc = 'Move window to the right' })
vim.keymap.set('n', '<C-S-j>', '<C-w>J', { desc = 'Move window to the lower' })
vim.keymap.set('n', '<C-S-k>', '<C-w>K', { desc = 'Move window to the upper' })
vim.keymap.set('n', '<Leader>.', '<Cmd>tabnext<CR>', { desc = 'Next tab' }) vim.keymap.set('n', '<Leader>.', '<Cmd>tabnext<CR>', { desc = 'Next tab' })
vim.keymap.set('n', '<Leader>,', '<Cmd>tabprevious<CR>', { desc = 'Previous tab' }) vim.keymap.set('n', '<Leader>,', '<Cmd>tabprevious<CR>', { desc = 'Previous tab' })
@@ -204,79 +253,79 @@ local function open_test()
require('neotest').output_panel.open() require('neotest').output_panel.open()
end end
-- Testing -- Testing
local test_maps = { -- local test_maps = {
{ -- {
keys = { '<F12>', '<Leader>tn' }, -- keys = { '<F12>', '<Leader>tn' },
action = function() -- action = function()
require('neotest').run.run() -- require('neotest').run.run()
open_test() -- open_test()
end, -- end,
desc = 'Run nearest test', -- desc = 'Run nearest test',
}, -- },
{ -- {
keys = { '<F9>', '<Leader>ta' }, -- keys = { '<F9>', '<Leader>ta' },
action = function() -- action = function()
require('neotest').run.run { suite = true } -- require('neotest').run.run { suite = true }
open_test() -- open_test()
end, -- end,
desc = 'Run all tests in the project', -- desc = 'Run all tests in the project',
}, -- },
{ -- {
keys = { '<F11>', '<Leader>tp' }, -- keys = { '<F11>', '<Leader>tp' },
action = function() -- action = function()
require('neotest').run.run_last() -- require('neotest').run.run_last()
open_test() -- open_test()
end, -- end,
desc = 'Run previous test again', -- desc = 'Run previous test again',
}, -- },
{ -- {
keys = { '<F10>', '<Leader>td' }, -- keys = { '<F10>', '<Leader>td' },
action = function() -- action = function()
local dap = require 'dap' -- local dap = require 'dap'
if dap.session() == nil then -- if dap.session() == nil then
dap.continue() -- dap.continue()
end -- end
require('dapui').open() -- require('dapui').open()
local neotest = require 'neotest' -- local neotest = require 'neotest'
local bufnr = vim.api.nvim_get_current_buf() -- local bufnr = vim.api.nvim_get_current_buf()
local row = vim.api.nvim_win_get_cursor(0)[1] - 1 -- local row = vim.api.nvim_win_get_cursor(0)[1] - 1
--
local adapters = neotest.state.adapter_ids() -- local adapters = neotest.state.adapter_ids()
local found = false -- local found = false
--
for _, adapter_id in ipairs(adapters) do -- for _, adapter_id in ipairs(adapters) do
local tree = neotest.state.positions(adapter_id, { buffer = bufnr }) -- local tree = neotest.state.positions(adapter_id, { buffer = bufnr })
if tree then -- if tree then
local nearest = require('neotest.lib.positions').nearest(tree, row) -- local nearest = require('neotest.lib.positions').nearest(tree, row)
if nearest and nearest:data().type ~= 'file' then -- if nearest and nearest:data().type ~= 'file' then
neotest.run.run() -- neotest.run.run()
found = true -- found = true
break -- break
end -- end
end -- end
end -- end
--
if not found then -- if not found then
neotest.run.run_last() -- neotest.run.run_last()
end -- end
end, -- end,
desc = 'Run last test with debugger', -- desc = 'Run last test with debugger',
}, -- },
} -- }
--
for _, map_info in ipairs(test_maps) do -- for _, map_info in ipairs(test_maps) do
for _, key in ipairs(map_info.keys) do -- for _, key in ipairs(map_info.keys) do
vim.keymap.set('n', key, map_info.action, { desc = map_info.desc }) -- vim.keymap.set('n', key, map_info.action, { desc = map_info.desc })
end -- end
end -- end
vim.keymap.set('n', '<Leader>tf', function() -- vim.keymap.set('n', '<Leader>tf', function()
require('neotest').run.run(vim.fn.expand '%') -- require('neotest').run.run(vim.fn.expand '%')
open_test() -- open_test()
end, { desc = 'Run all tests in the current file' }) -- end, { desc = 'Run all tests in the current file' })
vim.keymap.set('n', '<Leader>tc', function() -- vim.keymap.set('n', '<Leader>tc', function()
require('neotest').summary.close() -- require('neotest').summary.close()
require('neotest').output_panel.close() -- require('neotest').output_panel.close()
end, { desc = 'Close test panels' }) -- end, { desc = 'Close test panels' })
-- vim.keymap.set('i', '<Tab>', function() -- vim.keymap.set('i', '<Tab>', function()
-- local copilot = require 'copilot.suggestion' -- local copilot = require 'copilot.suggestion'