Skip to content

Commit e962e97

Browse files
authored
refactor(#2830): multi instance marks (#2873)
* refactor(#2830): multi instance marks * refactor(#2830): multi instance marks * refactor(#2830): multi instance marks
1 parent 4234095 commit e962e97

File tree

11 files changed

+248
-358
lines changed

11 files changed

+248
-358
lines changed

doc/nvim-tree-lua.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -2195,8 +2195,8 @@ marks.navigate.prev() *nvim-tree-api.marks.navigate.prev()*
21952195
As per |nvim-tree-api.marks.navigate.next()|
21962196

21972197
marks.navigate.select() *nvim-tree-api.marks.navigate.select()*
2198-
Prompts for selection of a marked node as per
2199-
|nvim-tree-api.marks.navigate.next()|
2198+
Prompts for selection of a marked node, sorted by absolute paths.
2199+
A folder will be focused, a file will be opened.
22002200

22012201
==============================================================================
22022202
6.8 API CONFIG *nvim-tree-api.config*

lua/nvim-tree.lua

-1
Original file line numberDiff line numberDiff line change
@@ -840,7 +840,6 @@ function M.setup(conf)
840840
require("nvim-tree.view").setup(opts)
841841
require("nvim-tree.lib").setup(opts)
842842
require("nvim-tree.renderer").setup(opts)
843-
require("nvim-tree.marks").setup(opts)
844843
require("nvim-tree.buffers").setup(opts)
845844
require("nvim-tree.help").setup(opts)
846845
require("nvim-tree.watcher").setup(opts)

lua/nvim-tree/api.lua

+10-26
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,6 @@ local actions = require "nvim-tree.actions"
66
local appearance_diagnostics = require "nvim-tree.appearance.diagnostics"
77
local events = require "nvim-tree.events"
88
local help = require "nvim-tree.help"
9-
local marks_navigation = require "nvim-tree.marks.navigation"
10-
local marks_bulk_delete = require "nvim-tree.marks.bulk-delete"
11-
local marks_bulk_trash = require "nvim-tree.marks.bulk-trash"
12-
local marks_bulk_move = require "nvim-tree.marks.bulk-move"
139
local keymap = require "nvim-tree.keymap"
1410
local notify = require "nvim-tree.notify"
1511

@@ -76,18 +72,6 @@ local function wrap_node_or_nil(fn)
7672
end
7773
end
7874

79-
---Inject the explorer as the first argument if present otherwise do nothing.
80-
---@param fn function function to invoke
81-
---@return fun(...) : any
82-
local function wrap_explorer(fn)
83-
return function(...)
84-
local explorer = core.get_explorer()
85-
if explorer then
86-
return fn(explorer, ...)
87-
end
88-
end
89-
end
90-
9175
---Invoke a member's method on the singleton explorer.
9276
---Print error when setup not called.
9377
---@param explorer_member string explorer member name
@@ -267,16 +251,16 @@ Api.events.Event = events.Event
267251
Api.live_filter.start = wrap_explorer_member("live_filter", "start_filtering")
268252
Api.live_filter.clear = wrap_explorer_member("live_filter", "clear_filter")
269253

270-
Api.marks.get = wrap_node(wrap_explorer_member("marks", "get_mark"))
271-
Api.marks.list = wrap_explorer_member("marks", "get_marks")
272-
Api.marks.toggle = wrap_node(wrap_explorer_member("marks", "toggle_mark"))
273-
Api.marks.clear = wrap_explorer_member("marks", "clear_marks")
274-
Api.marks.bulk.delete = wrap_explorer(marks_bulk_delete.bulk_delete)
275-
Api.marks.bulk.trash = wrap_explorer(marks_bulk_trash.bulk_trash)
276-
Api.marks.bulk.move = wrap_explorer(marks_bulk_move.bulk_move)
277-
Api.marks.navigate.next = wrap(marks_navigation.next)
278-
Api.marks.navigate.prev = wrap(marks_navigation.prev)
279-
Api.marks.navigate.select = wrap(marks_navigation.select)
254+
Api.marks.get = wrap_node(wrap_explorer_member("marks", "get"))
255+
Api.marks.list = wrap_explorer_member("marks", "list")
256+
Api.marks.toggle = wrap_node(wrap_explorer_member("marks", "toggle"))
257+
Api.marks.clear = wrap_explorer_member("marks", "clear")
258+
Api.marks.bulk.delete = wrap_explorer_member("marks", "bulk_delete")
259+
Api.marks.bulk.trash = wrap_explorer_member("marks", "bulk_trash")
260+
Api.marks.bulk.move = wrap_explorer_member("marks", "bulk_move")
261+
Api.marks.navigate.next = wrap_explorer_member("marks", "navigate_next")
262+
Api.marks.navigate.prev = wrap_explorer_member("marks", "navigate_prev")
263+
Api.marks.navigate.select = wrap_explorer_member("marks", "navigate_select")
280264

281265
Api.config.mappings.get_keymap = wrap(keymap.get_keymap)
282266
Api.config.mappings.get_keymap_default = wrap(keymap.get_keymap_default)

lua/nvim-tree/explorer/filters.lua

+1-1
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ function Filters:prepare(git_status)
194194

195195
local explorer = require("nvim-tree.core").get_explorer()
196196
if explorer then
197-
for _, node in pairs(explorer.marks:get_marks()) do
197+
for _, node in pairs(explorer.marks:list()) do
198198
status.bookmarks[node.absolute_path] = node.type
199199
end
200200
end

lua/nvim-tree/explorer/init.lua

+4-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ local notify = require "nvim-tree.notify"
33
local watch = require "nvim-tree.explorer.watch"
44
local explorer_node = require "nvim-tree.explorer.node"
55
local Filters = require "nvim-tree.explorer.filters"
6-
local Marks = require "nvim-tree.marks"
6+
local Marks = {} -- circular dependencies
77
local LiveFilter = require "nvim-tree.explorer.live-filter"
88
local Sorters = require "nvim-tree.explorer.sorters"
99

@@ -44,12 +44,12 @@ function Explorer.new(path)
4444
absolute_path = path,
4545
nodes = {},
4646
open = true,
47-
marks = Marks:new(),
4847
sorters = Sorters:new(M.config),
4948
}, Explorer)
5049
explorer.watcher = watch.create_watcher(explorer)
5150
explorer.filters = Filters:new(M.config, explorer)
5251
explorer.live_filter = LiveFilter:new(M.config, explorer)
52+
explorer.marks = Marks:new(M.config, explorer)
5353
explorer:_load(explorer)
5454
return explorer
5555
end
@@ -85,6 +85,8 @@ function M.setup(opts)
8585
require("nvim-tree.explorer.explore").setup(opts)
8686
require("nvim-tree.explorer.reload").setup(opts)
8787
require("nvim-tree.explorer.watch").setup(opts)
88+
89+
Marks = require "nvim-tree.marks"
8890
end
8991

9092
M.Explorer = Explorer

lua/nvim-tree/marks/bulk-delete.lua

-59
This file was deleted.

lua/nvim-tree/marks/bulk-move.lua

-67
This file was deleted.

lua/nvim-tree/marks/bulk-trash.lua

-53
This file was deleted.

0 commit comments

Comments
 (0)