1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-03 15:50:04 +08:00
SpaceVim/bundle/neo-tree.nvim/lua/neo-tree/sources/document_symbols/commands.lua
2023-05-30 21:09:18 +08:00

70 lines
2.0 KiB
Lua

--This file should contain all commands meant to be used by mappings.
local cc = require("neo-tree.sources.common.commands")
local utils = require("neo-tree.utils")
local manager = require("neo-tree.sources.manager")
local inputs = require("neo-tree.ui.inputs")
local filters = require("neo-tree.sources.common.filters")
local vim = vim
local M = {}
local SOURCE_NAME = "document_symbols"
M.refresh = utils.wrap(manager.refresh, SOURCE_NAME)
M.redraw = utils.wrap(manager.redraw, SOURCE_NAME)
M.show_debug_info = function(state)
print(vim.inspect(state))
end
M.jump_to_symbol = function(state, node)
node = node or state.tree:get_node()
if node:get_depth() == 1 then
return
end
vim.api.nvim_set_current_win(state.lsp_winid)
vim.api.nvim_set_current_buf(state.lsp_bufnr)
local symbol_loc = node.extra.selection_range.start
vim.api.nvim_win_set_cursor(state.lsp_winid, { symbol_loc[1] + 1, symbol_loc[2] })
end
M.rename = function(state)
local node = state.tree:get_node()
if node:get_depth() == 1 then
return
end
local old_name = node.name
local callback = function(new_name)
if not new_name or new_name == "" or new_name == old_name then
return
end
M.jump_to_symbol(state, node)
vim.lsp.buf.rename(new_name)
M.refresh(state)
end
local msg = string.format('Enter new name for "%s":', old_name)
inputs.input(msg, old_name, callback)
end
M.open = M.jump_to_symbol
M.filter_on_submit = function(state)
filters.show_filter(state, true, true)
end
M.filter = function(state)
filters.show_filter(state, true)
end
cc._add_common_commands(M, "node") -- common tree commands
cc._add_common_commands(M, "^open") -- open commands
cc._add_common_commands(M, "^close_window$")
cc._add_common_commands(M, "source$") -- source navigation
cc._add_common_commands(M, "preview") -- preview
cc._add_common_commands(M, "^cancel$") -- cancel
cc._add_common_commands(M, "help") -- help commands
cc._add_common_commands(M, "with_window_picker$") -- open using window picker
cc._add_common_commands(M, "^toggle_auto_expand_width$")
return M