diff --git a/lua/lazy/view/init.lua b/lua/lazy/view/init.lua index 1808ab4..b2fcbb9 100644 --- a/lua/lazy/view/init.lua +++ b/lua/lazy/view/init.lua @@ -122,7 +122,7 @@ function M.show(mode) callback = close, }) - local render = Render.new(buf, win, 2) + local render = Render.new(buf, win, 2, opts.width) local update = Util.throttle(Config.options.ui.throttle, function() if buf and vim.api.nvim_buf_is_valid(buf) then vim.bo[buf].modifiable = true diff --git a/lua/lazy/view/render.lua b/lua/lazy/view/render.lua index d0a9800..4e2f781 100644 --- a/lua/lazy/view/render.lua +++ b/lua/lazy/view/render.lua @@ -19,11 +19,12 @@ local Text = require("lazy.view.text") ---@field _details? string local M = setmetatable({}, { __index = Text }) -function M.new(buf, win, padding) +function M.new(buf, win, padding, wrap) local self = setmetatable({}, { __index = M }) self.buf = buf self.win = win self.padding = padding or 0 + self.wrap = wrap return self end diff --git a/lua/lazy/view/text.lua b/lua/lazy/view/text.lua index 974e3de..2d8567f 100644 --- a/lua/lazy/view/text.lua +++ b/lua/lazy/view/text.lua @@ -6,6 +6,7 @@ local Config = require("lazy.core.config") ---@class Text ---@field _lines TextSegment[][] ---@field padding number +---@field wrap number local Text = {} function Text.new() @@ -37,6 +38,9 @@ function Text:append(str, hl, opts) if l > 1 then self:nl() end + if self:col() > 0 and self:col() + vim.fn.strwidth(line) + self.padding > self.wrap then + self:nl() + end table.insert(self._lines[#self._lines], { str = line, hl = hl,