Created
July 30, 2024 18:17
-
-
Save dtanphat9388/e52ded2957b0f910fb10c91778bbbd9b to your computer and use it in GitHub Desktop.
remove range of selected files in nvim-tree
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local function on_attach(bufnr) | |
local api = require("nvim-tree.api") | |
local core = require("nvim-tree.core") | |
local utils = require("nvim-tree.utils") | |
-- NOTE: set nvim-tree.ui.confirm.remove = false to take effect | |
local function remove_range_nodes() | |
local nodes = utils.get_nodes_by_line(api.tree.get_nodes().nodes, core.get_nodes_starting_line()) | |
local lines = {} | |
if vim.fn.mode() == "v" or vim.fn.mode() == "V" then | |
local start_pos = vim.fn.getpos("v") | |
local end_pos = vim.fn.getcurpos() | |
local srow = start_pos[2] | |
local erow = end_pos[2] | |
lines = vim.fn.range(srow, erow) | |
end | |
for _, line in pairs(lines) do | |
api.fs.remove(nodes[line]) | |
end | |
end | |
vim.keymap.set("v", "D", remove_range_nodes, opts("remove range nodes")) | |
-- ... other keymap | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment