-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathwriter.lua
More file actions
31 lines (26 loc) · 1015 Bytes
/
writer.lua
File metadata and controls
31 lines (26 loc) · 1015 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
local parser = require("java-deps.parser")
local highlight = require("java-deps.highlight")
local M = {}
local function is_buffer_outline(bufnr)
local isValid = vim.api.nvim_buf_is_valid(bufnr)
local name = vim.api.nvim_buf_get_name(bufnr)
local ft = vim.api.nvim_buf_get_option(bufnr, "filetype")
return string.match(name, "JavaProjects") ~= nil and ft == "JavaProjects" and isValid
end
function M.write_outline(bufnr, lines)
if not is_buffer_outline(bufnr) then
return
end
vim.api.nvim_buf_set_option(bufnr, "modifiable", true)
vim.api.nvim_buf_set_lines(bufnr, 0, -1, false, lines)
vim.api.nvim_buf_set_option(bufnr, "modifiable", false)
end
---@param bufnr integer
---@param flattened_outline_items TreeItem
function M.parse_and_write(bufnr, flattened_outline_items)
local lines, hl_info = parser.get_lines(flattened_outline_items)
highlight.clear_all_ns(bufnr)
M.write_outline(bufnr, lines)
highlight.add_item_highlights(bufnr, hl_info, flattened_outline_items)
end
return M