Files
eleith 1057d372f3
ci/woodpecker/push/ci Pipeline was successful
Highlight characterwise comment ranges
2026-09-30 10:44:03 -07:00

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)