74 lines
2.3 KiB
Lua
74 lines
2.3 KiB
Lua
local helpers = require("helpers")
|
|
local expect = MiniTest.expect
|
|
|
|
before_each(function()
|
|
helpers.reset()
|
|
helpers.buffer("notes.md", { "one", "two", "three", "four", "five", "six" })
|
|
end)
|
|
|
|
describe("signs", function()
|
|
it("mark a one-line comment with one sign", function()
|
|
vim.cmd("1Comment")
|
|
helpers.write("on one")
|
|
expect.equality(helpers.sign_at(1), "│")
|
|
local namespace = vim.api.nvim_get_namespaces().scratch_comments_signs
|
|
for _, mark in ipairs(vim.api.nvim_buf_get_extmarks(0, namespace, 0, -1, { details = true })) do
|
|
expect.equality(mark[4].hl_group, nil)
|
|
end
|
|
end)
|
|
|
|
it("mark a range from its first line to its last", function()
|
|
vim.cmd("2,5Comment")
|
|
helpers.write("on four lines")
|
|
expect.equality(helpers.sign_at(1), nil)
|
|
expect.equality(helpers.sign_at(2), "╭")
|
|
expect.equality(helpers.sign_at(3), "│")
|
|
expect.equality(helpers.sign_at(4), "│")
|
|
expect.equality(helpers.sign_at(5), "╰")
|
|
expect.equality(helpers.sign_at(6), nil)
|
|
end)
|
|
|
|
it("go with :CommentClear", function()
|
|
vim.cmd("1Comment")
|
|
helpers.write("on one")
|
|
vim.cmd("CommentClear")
|
|
expect.equality(helpers.sign_at(1), nil)
|
|
end)
|
|
end)
|
|
|
|
describe(":CommentToggle", function()
|
|
before_each(function()
|
|
vim.cmd("1Comment")
|
|
helpers.write("on one")
|
|
end)
|
|
|
|
it("off hides signs, on shows them", function()
|
|
vim.cmd("CommentToggle off")
|
|
expect.equality(helpers.sign_at(1), nil)
|
|
vim.cmd("CommentToggle on")
|
|
expect.equality(helpers.sign_at(1), "│")
|
|
end)
|
|
|
|
it("with no argument flips them", function()
|
|
vim.cmd("CommentToggle")
|
|
expect.equality(helpers.sign_at(1), nil)
|
|
vim.cmd("CommentToggle")
|
|
expect.equality(helpers.sign_at(1), "│")
|
|
end)
|
|
|
|
it("with anything but on or off shows its usage and changes nothing", function()
|
|
vim.cmd("CommentToggle bogus")
|
|
expect.equality(helpers.sign_at(1), "│")
|
|
expect.equality(helpers.notified()[#helpers.notified()], "Usage: :CommentToggle [on|off]")
|
|
end)
|
|
|
|
it("keeps comments added while hidden hidden, until shown", function()
|
|
vim.cmd("CommentToggle off")
|
|
vim.cmd("2Comment")
|
|
helpers.write("added while hidden")
|
|
expect.equality(helpers.sign_at(2), nil)
|
|
vim.cmd("CommentToggle on")
|
|
expect.equality(helpers.sign_at(2), "│")
|
|
end)
|
|
end)
|