mirror of
https://git.alemi.dev/neo-tree-symbolmap.git
synced 2024-11-15 04:39:20 +01:00
48 lines
1.3 KiB
Lua
48 lines
1.3 KiB
Lua
|
|
--This file should have all functions that are in the public api and either set
|
|
--or read the state of this source.
|
|
|
|
-- local vim = vim
|
|
local renderer = require("neo-tree.ui.renderer")
|
|
local manager = require("neo-tree.sources.manager")
|
|
local events = require("neo-tree.events")
|
|
|
|
local M = { name = "symbolmap" }
|
|
|
|
---Navigate to the given path.
|
|
---@param path string Path to navigate to. If empty, will navigate to the cwd.
|
|
M.navigate = function(state, path)
|
|
if path == nil then
|
|
path = vim.fn.getcwd()
|
|
end
|
|
state.path = path
|
|
|
|
if state.symboltree == nil then
|
|
state.symboltree = { {
|
|
id = "root",
|
|
name = "press 'a' to start querying for symbols",
|
|
type = "file",
|
|
extra = { kind = vim.lsp.protocol.SymbolKind.Event },
|
|
children = {}
|
|
} }
|
|
end
|
|
|
|
renderer.show_nodes(state.symboltree, state)
|
|
end
|
|
|
|
---Configures the plugin, should be called before the plugin is used.
|
|
---@param config table Configuration table containing any keys that the user
|
|
--wants to change from the defaults. May be empty to accept default values.
|
|
M.setup = function(config, global_config)
|
|
-- You most likely want to use this function to subscribe to events
|
|
if config.use_libuv_file_watcher then
|
|
-- manager.subscribe(M.name, {
|
|
-- event = events.FS_EVENT,
|
|
-- handler = function(args)
|
|
-- manager.refresh(M.name)
|
|
-- end,
|
|
-- })
|
|
end
|
|
end
|
|
|
|
return M
|