From 04b4abb5ba369ba42f2fc2d2b23179ccd8b8be02 Mon Sep 17 00:00:00 2001 From: Julian Doherty Date: Sat, 27 Aug 2022 11:48:28 +1000 Subject: [PATCH] add wrap config option, default to false Default to not wrapping long function names etc that are too big for the window. If wrap=true is set, use some sane linebreak/breakindent/showbreak options to wrap with an indent at the current indent level of the UI tree, instead of just wrapping back to the far left side of the window. --- README.md | 2 ++ lua/symbols-outline/config.lua | 1 + lua/symbols-outline/view.lua | 8 ++++++++ 3 files changed, 11 insertions(+) diff --git a/README.md b/README.md index 14cad04..10cbcaa 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 = "", @@ -114,6 +115,7 @@ local opts = { | 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) | { '', '' } | +| 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..a3fa596 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 = true, 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..dc78e0c 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')