Meh I'll figure out submodules later
This commit is contained in:
parent
4ca9d44a90
commit
8cb281f436
352 changed files with 66107 additions and 0 deletions
|
|
@ -0,0 +1,164 @@
|
|||
pcall(require, "luacov")
|
||||
|
||||
local Line = require("nui.line")
|
||||
local Text = require("nui.text")
|
||||
local h = require("tests.helpers")
|
||||
|
||||
local eq = h.eq
|
||||
|
||||
describe("nui.line", function()
|
||||
it("can accept initial nui.text objects", function()
|
||||
local t1, t2 = Text("One"), Text("Two")
|
||||
local line = Line({ t1, t2 })
|
||||
|
||||
eq(#line._texts, 2)
|
||||
end)
|
||||
|
||||
describe("method :append", function()
|
||||
it("returns nui.text for string parameter", function()
|
||||
local line = Line()
|
||||
local text = line:append("One")
|
||||
|
||||
eq(type(text.content), "function")
|
||||
end)
|
||||
|
||||
it("returns nui.text for nui.text parameter", function()
|
||||
local line = Line()
|
||||
local text = Text("One")
|
||||
local ret_text = line:append(text)
|
||||
|
||||
eq(text == ret_text, true)
|
||||
eq(type(ret_text.content), "function")
|
||||
end)
|
||||
|
||||
it("returns nui.line for nui.line parameter", function()
|
||||
local line = Line()
|
||||
|
||||
local content_line = Line({ Text("One"), Text("Two") })
|
||||
|
||||
local ret_content_line = line:append(content_line)
|
||||
|
||||
eq(content_line == ret_content_line, true)
|
||||
eq(type(ret_content_line.append), "function")
|
||||
end)
|
||||
|
||||
it("stores and returns block with same reference", function()
|
||||
local line = Line()
|
||||
|
||||
local text_one = line:append("One")
|
||||
|
||||
eq(line._texts[1] == text_one, true)
|
||||
|
||||
local text_two = Text("Two")
|
||||
local ret_text_two = line:append(text_two)
|
||||
|
||||
eq(text_two == ret_text_two, true)
|
||||
eq(line._texts[2] == text_two, true)
|
||||
eq(line._texts[2] == ret_text_two, true)
|
||||
|
||||
local text_three = Text("Three")
|
||||
local text_four = Text("Four")
|
||||
local content_line = Line({ text_three, text_four })
|
||||
local ret_content_line = line:append(content_line)
|
||||
|
||||
eq(content_line == ret_content_line, true)
|
||||
eq(line._texts[3] == content_line._texts[1], true)
|
||||
eq(line._texts[4] == content_line._texts[2], true)
|
||||
end)
|
||||
end)
|
||||
|
||||
describe("method :content", function()
|
||||
it("returns whole text content", function()
|
||||
local line = Line()
|
||||
line:append("One")
|
||||
line:append("Two")
|
||||
|
||||
eq(line:content(), "OneTwo")
|
||||
end)
|
||||
end)
|
||||
|
||||
describe("method :width", function()
|
||||
it("returns whole text width", function()
|
||||
local line = Line()
|
||||
line:append("One")
|
||||
line:append("Two")
|
||||
|
||||
eq(line:width(), 6)
|
||||
end)
|
||||
end)
|
||||
|
||||
describe("method", function()
|
||||
local winid, bufnr
|
||||
|
||||
before_each(function()
|
||||
winid = vim.api.nvim_get_current_win()
|
||||
bufnr = vim.api.nvim_create_buf(false, true)
|
||||
|
||||
vim.api.nvim_win_set_buf(winid, bufnr)
|
||||
end)
|
||||
|
||||
after_each(function()
|
||||
vim.api.nvim_buf_delete(bufnr, { force = true })
|
||||
end)
|
||||
|
||||
describe(":highlight", function()
|
||||
local hl_group_one, hl_group_two, ns, ns_id
|
||||
local linenr
|
||||
local t1, t2, t3, t4
|
||||
local line
|
||||
|
||||
before_each(function()
|
||||
hl_group_one = "NuiTextTestOne"
|
||||
hl_group_two = "NuiTextTestTwo"
|
||||
ns = "NuiTest"
|
||||
ns_id = vim.api.nvim_create_namespace(ns)
|
||||
|
||||
linenr = 1
|
||||
|
||||
t1 = Text("One")
|
||||
t2 = Text("Two", hl_group_one)
|
||||
t3 = Text("Three", hl_group_two)
|
||||
t4 = Text("Four")
|
||||
|
||||
line = Line({ t1, t2, t3, t4 })
|
||||
end)
|
||||
|
||||
it("is applied with :render", function()
|
||||
line:render(bufnr, ns_id, linenr)
|
||||
|
||||
h.assert_highlight(bufnr, ns_id, linenr, t2:content(), hl_group_one)
|
||||
h.assert_highlight(bufnr, ns_id, linenr, t3:content(), hl_group_two)
|
||||
end)
|
||||
|
||||
it("can highlight existing buffer line", function()
|
||||
vim.api.nvim_buf_set_lines(
|
||||
bufnr,
|
||||
linenr - 1,
|
||||
-1,
|
||||
false,
|
||||
{ t1:content() .. t2:content() .. t3:content() .. t4:content() }
|
||||
)
|
||||
|
||||
line:highlight(bufnr, ns_id, linenr)
|
||||
|
||||
h.assert_highlight(bufnr, ns_id, linenr, t2:content(), hl_group_one)
|
||||
h.assert_highlight(bufnr, ns_id, linenr, t3:content(), hl_group_two)
|
||||
end)
|
||||
end)
|
||||
|
||||
describe(":render", function()
|
||||
it("works", function()
|
||||
local linenr = 1
|
||||
|
||||
local line = Line()
|
||||
line:append("4")
|
||||
line:append("2")
|
||||
line:render(bufnr, -1, linenr)
|
||||
|
||||
h.assert_buf_lines(bufnr, {
|
||||
"42",
|
||||
})
|
||||
end)
|
||||
end)
|
||||
end)
|
||||
end)
|
||||
Loading…
Add table
Add a link
Reference in a new issue