diff --git a/README.md b/README.md index 14cad04..5fdd369 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,7 @@ local opts = { autofold_depth = nil, auto_unfold_hover = true, fold_markers = { '', '' }, + wrap = false, keymaps = { -- These keymaps can be a string or a table for multiple keys close = {"", "q"}, goto_location = "", @@ -113,7 +114,8 @@ local opts = { | symbol_blacklist | Which symbols to ignore ([possible values](./lua/symbols-outline/symbols.lua)) | table (array) | {} | | autofold_depth | Depth past which nodes will be folded by default | int | nil | | auto_unfold_hover | Automatically unfold hovered symbol | boolean | true | -| fold_markers | Markers to denote foldable symbol's status | table (array) | { '', '' } | +| fold_markers | Markers to denote foldable symbol's status | table (array) | { '', '' } | +| wrap | Whether to wrap long lines, or let them flow off the window | boolean | false | ## Commands diff --git a/lua/symbols-outline/config.lua b/lua/symbols-outline/config.lua index e5ed735..a7cbe5a 100644 --- a/lua/symbols-outline/config.lua +++ b/lua/symbols-outline/config.lua @@ -19,6 +19,7 @@ M.defaults = { autofold_depth = nil, auto_unfold_hover = true, fold_markers = { '', '' }, + wrap = false, keymaps = { -- These keymaps can be a string or a table for multiple keys close = { '', 'q' }, goto_location = '', diff --git a/lua/symbols-outline/view.lua b/lua/symbols-outline/view.lua index 0202ac6..3ffd0f6 100644 --- a/lua/symbols-outline/view.lua +++ b/lua/symbols-outline/view.lua @@ -27,6 +27,14 @@ function View:setup_view() vim.api.nvim_win_set_option(self.winnr, 'relativenumber', false) vim.api.nvim_win_set_option(self.winnr, 'winfixwidth', true) vim.api.nvim_win_set_option(self.winnr, 'list', false) + vim.api.nvim_win_set_option(self.winnr, 'wrap', config.options.wrap) + vim.api.nvim_win_set_option(self.winnr, 'linebreak', true) -- only has effect when wrap=true + vim.api.nvim_win_set_option(self.winnr, 'breakindent', true) -- only has effect when wrap=true + -- Would be nice to use ui.markers.vertical as part of showbreak to keep + -- continuity of the tree UI, but there's currently no way to style the + -- color, apart from globally overriding hl-NonText, which will potentially + -- mess with other theme/user settings. So just use empty spaces for now. + vim.api.nvim_win_set_option(self.winnr, 'showbreak', ' ') -- only has effect when wrap=true. -- buffer stuff vim.api.nvim_buf_set_name(self.bufnr, 'OUTLINE') vim.api.nvim_buf_set_option(self.bufnr, 'filetype', 'Outline') @@ -49,9 +57,9 @@ end function View:is_open() return self.winnr - and self.bufnr - and vim.api.nvim_buf_is_valid(self.bufnr) - and vim.api.nvim_win_is_valid(self.winnr) + and self.bufnr + and vim.api.nvim_buf_is_valid(self.bufnr) + and vim.api.nvim_win_is_valid(self.winnr) end return View