aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit/ts_utils_spec.lua
diff options
context:
space:
mode:
authorAxel Dahlberg <git@valleymnt.com>2022-07-29 17:35:29 +0200
committerGitHub <noreply@github.com>2022-07-29 17:35:29 +0200
commit0d7fab0c3323ed2e50ccdf14fd24fbbad664f7b1 (patch)
tree4adfffa3b333ecb151c4b5e2949c137c09c3997a /tests/unit/ts_utils_spec.lua
parentUpdate lockfile.json (diff)
downloadnvim-treesitter-0d7fab0c3323ed2e50ccdf14fd24fbbad664f7b1.tar
nvim-treesitter-0d7fab0c3323ed2e50ccdf14fd24fbbad664f7b1.tar.gz
nvim-treesitter-0d7fab0c3323ed2e50ccdf14fd24fbbad664f7b1.tar.bz2
nvim-treesitter-0d7fab0c3323ed2e50ccdf14fd24fbbad664f7b1.tar.lz
nvim-treesitter-0d7fab0c3323ed2e50ccdf14fd24fbbad664f7b1.tar.xz
nvim-treesitter-0d7fab0c3323ed2e50ccdf14fd24fbbad664f7b1.tar.zst
nvim-treesitter-0d7fab0c3323ed2e50ccdf14fd24fbbad664f7b1.zip
feat(ts_utils): allow starting selection after last character (#3233)
Diffstat (limited to 'tests/unit/ts_utils_spec.lua')
-rw-r--r--tests/unit/ts_utils_spec.lua67
1 files changed, 67 insertions, 0 deletions
diff --git a/tests/unit/ts_utils_spec.lua b/tests/unit/ts_utils_spec.lua
index 1825a3b68..a3b334413 100644
--- a/tests/unit/ts_utils_spec.lua
+++ b/tests/unit/ts_utils_spec.lua
@@ -39,3 +39,70 @@ describe("is_in_node_range", function()
assert.is_false(test_is_in_node_range(3, 0))
end)
end)
+
+describe("update_selection", function()
+ local function get_updated_selection(case)
+ vim.api.nvim_buf_set_lines(0, 0, -1, false, case.lines)
+ tsutils.update_selection(0, case.node, case.selection_mode)
+ vim.cmd "normal! y"
+ return vim.fn.getreg '"'
+ end
+
+ it("charwise1", function()
+ assert.equal(
+ get_updated_selection {
+ lines = { "foo", "", "bar" },
+ node = { 0, 0, 2, 1 },
+ selection_mode = "v",
+ },
+ "foo\n\nb"
+ )
+ it("charwise2", function() end)
+ assert.equal(
+ get_updated_selection {
+ lines = { "foo", "", "bar" },
+ node = { 0, 1, 2, 1 },
+ selection_mode = "v",
+ },
+ "oo\n\nb"
+ )
+ it("charwise3", function() end)
+ assert.equal(
+ get_updated_selection {
+ lines = { "foo", "", "bar" },
+ node = { 0, 2, 2, 1 },
+ selection_mode = "v",
+ },
+ "o\n\nb"
+ )
+ it("charwise4", function() end)
+ assert.equal(
+ get_updated_selection {
+ lines = { "foo", "", "bar" },
+ node = { 0, 3, 2, 1 },
+ selection_mode = "v",
+ },
+ "\n\nb"
+ )
+ end)
+ it("linewise", function()
+ assert.equal(
+ get_updated_selection {
+ lines = { "foo", "", "bar" },
+ node = { 0, 3, 2, 1 },
+ selection_mode = "V",
+ },
+ "foo\n\nbar\n"
+ )
+ end)
+ it("blockwise", function()
+ assert.equal(
+ get_updated_selection {
+ lines = { "foo", "", "bar" },
+ node = { 0, 3, 2, 1 },
+ selection_mode = "<C-v>",
+ },
+ "foo\n\nbar"
+ )
+ end)
+end)