Revert "feat(parser): Flatten outline items while parsing"

This reverts commit 776ddb3930.
This commit is contained in:
Simrat Grewal
2022-08-16 17:59:47 -07:00
parent 7aadfaf916
commit 057715f3b0
6 changed files with 34 additions and 21 deletions

View File

@@ -55,11 +55,12 @@ end
-------------------------
M.state = {
outline_items = {},
flattened_outline_items = {},
code_win = 0,
}
local function wipe_state()
M.state = { outline_items = {}, code_win = 0 }
M.state = { outline_items = {}, flattened_outline_items = {}, code_win = 0 }
end
local function __refresh()
@@ -73,8 +74,9 @@ local function __refresh()
M.state.code_win = vim.api.nvim_get_current_win()
M.state.outline_items = items
M.state.flattened_outline_items = parser.flatten(items)
writer.parse_and_write(M.view.bufnr, M.state.outline_items)
writer.parse_and_write(M.view.bufnr, M.state.flattened_outline_items)
end
providers.request_symbols(refresh_handler)
@@ -85,7 +87,7 @@ M._refresh = utils.debounce(__refresh, 100)
local function goto_location(change_focus)
local current_line = vim.api.nvim_win_get_cursor(M.view.winnr)[1]
local node = M.state.outline_items[current_line]
local node = M.state.flattened_outline_items[current_line]
vim.api.nvim_win_set_cursor(
M.state.code_win,
{ node.line + 1, node.character }
@@ -126,7 +128,7 @@ function M._highlight_current_item(winnr)
local hovered_line = vim.api.nvim_win_get_cursor(win)[1] - 1
local nodes = {}
for index, value in ipairs(M.state.outline_items) do
for index, value in ipairs(M.state.flattened_outline_items) do
if
value.line == hovered_line
or (hovered_line > value.range_start and hovered_line < value.range_end)
@@ -209,8 +211,9 @@ local function handler(response)
local items = parser.parse(response)
M.state.outline_items = items
M.state.flattened_outline_items = parser.flatten(items)
writer.parse_and_write(M.view.bufnr, M.state.outline_items)
writer.parse_and_write(M.view.bufnr, M.state.flattened_outline_items)
M._highlight_current_item(M.state.code_win)
end