Skip to content

Commit

Permalink
fix(text): better (correct) way of dealing with \r characters. Fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
folke authored and willothy committed Aug 19, 2023
1 parent 82d9aba commit e86963b
Showing 1 changed file with 9 additions and 11 deletions.
20 changes: 9 additions & 11 deletions lua/noice/text/block.lua
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,15 @@ function Block:_append(content, highlight)
if #self._lines == 0 then
table.insert(self._lines, NuiLine())
end
if type(content) == "string" then
-- handle carriage returns. They overwrite the line from the first character
local cr = content:match("^.*()[\r^M]")
if cr then
table.remove(self._lines)
table.insert(self._lines, NuiLine())
content = content:sub(cr + 1)
end
end
return self._lines[#self._lines]:append(content, highlight)
end

Expand Down Expand Up @@ -156,7 +165,6 @@ function Block:append(contents, highlight)
-- Handle newlines
---@type number|string|table, string
local attr_id, text = unpack(content)
text = text:gsub("\r\n", "\n")

---@type string|table|nil
local hl_group
Expand All @@ -170,16 +178,6 @@ function Block:append(contents, highlight)
local nl = text:find("\n")
if nl then
local str = text:sub(1, nl - 1)

-- handle carriage returns. They overwrite the line from the first character
if str:find("\r") then
local parts = vim.split(str, "\r", { plain = true })
str = ""
for _, p in ipairs(parts) do
str = p .. str:sub(p:len() + 1)
end
end

self:_append(str, hl_group)
self:newline()
text = text:sub(nl + 1)
Expand Down

0 comments on commit e86963b

Please sign in to comment.