local config = require 'symbols-outline.config' local M = {} ---creates the outline window and sets it up ---@return string bufnr ---@return string bufnr function M.setup_view() -- create a scratch unlisted buffer local bufnr = vim.api.nvim_create_buf(false, true) -- delete buffer when window is closed / buffer is hidden vim.api.nvim_buf_set_option(bufnr, 'bufhidden', 'delete') -- create a split vim.cmd(config.get_split_command()) -- resize to a % of the current window size vim.cmd('vertical resize ' .. config.get_window_width()) -- get current (outline) window and attach our buffer to it local winnr = vim.api.nvim_get_current_win() vim.api.nvim_win_set_buf(winnr, bufnr) -- window stuff vim.api.nvim_win_set_option(winnr, 'number', false) vim.api.nvim_win_set_option(winnr, 'relativenumber', false) vim.api.nvim_win_set_option(winnr, 'winfixwidth', true) -- buffer stuff vim.api.nvim_buf_set_name(bufnr, 'OUTLINE') vim.api.nvim_buf_set_option(bufnr, 'filetype', 'Outline') vim.api.nvim_buf_set_option(bufnr, 'modifiable', false) if config.options.show_numbers or config.options.show_relative_numbers then vim.api.nvim_win_set_option(winnr, 'nu', true) end if config.options.show_relative_numbers then vim.api.nvim_win_set_option(winnr, 'rnu', true) end return bufnr, winnr end return M