refractor: Restructure project
lil better to work on now
This commit is contained in:
35
lua/symbols-outline/writer.lua
Normal file
35
lua/symbols-outline/writer.lua
Normal file
@@ -0,0 +1,35 @@
|
||||
local vim = vim
|
||||
|
||||
local parser = require('symbols-outline.parser')
|
||||
|
||||
local M = {}
|
||||
|
||||
function M.write_outline(bufnr, lines)
|
||||
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
|
||||
|
||||
function M.write_details(bufnr, lines)
|
||||
for index, value in ipairs(lines) do
|
||||
vim.api.nvim_buf_set_virtual_text(bufnr, -1, index - 1,
|
||||
{{value, "Comment"}}, {})
|
||||
end
|
||||
end
|
||||
|
||||
local function clear_virt_text(bufnr)
|
||||
vim.api.nvim_buf_clear_namespace(bufnr, -1, 0, -1)
|
||||
end
|
||||
|
||||
-- runs the whole writing routine where the text is cleared, new data is parsed
|
||||
-- and then written
|
||||
function M.parse_and_write(bufnr, winnr, outline_items, flattened_outline_items)
|
||||
local lines = parser.get_lines(flattened_outline_items)
|
||||
M.write_outline(bufnr, lines)
|
||||
|
||||
clear_virt_text(bufnr)
|
||||
local details = parser.get_details(outline_items, bufnr, winnr)
|
||||
M.write_details(bufnr, details)
|
||||
end
|
||||
|
||||
return M
|
||||
Reference in New Issue
Block a user