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.
This commit is contained in:
Julian Doherty
2022-08-27 11:48:28 +10:00
parent e459f3262c
commit 04b4abb5ba
3 changed files with 11 additions and 0 deletions

View File

@@ -46,6 +46,7 @@ local opts = {
autofold_depth = nil, autofold_depth = nil,
auto_unfold_hover = true, auto_unfold_hover = true,
fold_markers = { '', '' }, fold_markers = { '', '' },
wrap = false,
keymaps = { -- These keymaps can be a string or a table for multiple keys keymaps = { -- These keymaps can be a string or a table for multiple keys
close = {"<Esc>", "q"}, close = {"<Esc>", "q"},
goto_location = "<Cr>", goto_location = "<Cr>",
@@ -114,6 +115,7 @@ local opts = {
| autofold_depth | Depth past which nodes will be folded by default | int | nil | | autofold_depth | Depth past which nodes will be folded by default | int | nil |
| auto_unfold_hover | Automatically unfold hovered symbol | boolean | true | | 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 ## Commands

View File

@@ -19,6 +19,7 @@ M.defaults = {
autofold_depth = nil, autofold_depth = nil,
auto_unfold_hover = true, auto_unfold_hover = true,
fold_markers = { '', '' }, fold_markers = { '', '' },
wrap = true,
keymaps = { -- These keymaps can be a string or a table for multiple keys keymaps = { -- These keymaps can be a string or a table for multiple keys
close = { '<Esc>', 'q' }, close = { '<Esc>', 'q' },
goto_location = '<Cr>', goto_location = '<Cr>',

View File

@@ -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, 'relativenumber', false)
vim.api.nvim_win_set_option(self.winnr, 'winfixwidth', true) 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, '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 -- buffer stuff
vim.api.nvim_buf_set_name(self.bufnr, 'OUTLINE') vim.api.nvim_buf_set_name(self.bufnr, 'OUTLINE')
vim.api.nvim_buf_set_option(self.bufnr, 'filetype', 'Outline') vim.api.nvim_buf_set_option(self.bufnr, 'filetype', 'Outline')