diff options
Diffstat (limited to 'test/functional/ui/fold_spec.lua')
-rw-r--r-- | test/functional/ui/fold_spec.lua | 2391 |
1 files changed, 1018 insertions, 1373 deletions
diff --git a/test/functional/ui/fold_spec.lua b/test/functional/ui/fold_spec.lua index 1addf7088e..7f13b6bd03 100644 --- a/test/functional/ui/fold_spec.lua +++ b/test/functional/ui/fold_spec.lua @@ -4,12 +4,11 @@ local clear, feed, eq = helpers.clear, helpers.feed, helpers.eq local command = helpers.command local feed_command = helpers.feed_command local insert = helpers.insert -local funcs = helpers.funcs -local meths = helpers.meths +local fn = helpers.fn +local api = helpers.api local exec = helpers.exec local assert_alive = helpers.assert_alive - local content1 = [[ This is a valid English @@ -18,7 +17,7 @@ local content1 = [[ in his cave. ]] -describe("folded lines", function() +describe('folded lines', function() before_each(function() clear() command('hi VertSplit gui=reverse') @@ -28,280 +27,338 @@ describe("folded lines", function() local screen before_each(function() screen = Screen.new(45, 8) - screen:attach({rgb=true, ext_multigrid=multigrid}) + screen:attach({ rgb = true, ext_multigrid = multigrid }) screen:set_default_attr_ids({ - [1] = {bold = true, foreground = Screen.colors.Blue1}, - [2] = {reverse = true}, - [3] = {bold = true, reverse = true}, - [4] = {foreground = Screen.colors.White, background = Screen.colors.Red}, - [5] = {foreground = Screen.colors.DarkBlue, background = Screen.colors.LightGrey}, - [6] = {background = Screen.colors.Yellow}, - [7] = {foreground = Screen.colors.DarkBlue, background = Screen.colors.WebGray}, - [8] = {foreground = Screen.colors.Brown }, - [9] = {bold = true, foreground = Screen.colors.Brown}, - [10] = {background = Screen.colors.LightGrey, underline = true}, - [11] = {bold = true}, - [12] = {foreground = Screen.colors.Red}, - [13] = {foreground = Screen.colors.Red, background = Screen.colors.LightGrey}, - [14] = {background = Screen.colors.Red}, - [15] = {foreground = Screen.colors.DarkBlue, background = Screen.colors.Red}, - [16] = {background = Screen.colors.LightGrey}, - [17] = {background = Screen.colors.Yellow, foreground = Screen.colors.Red}, - [18] = {background = Screen.colors.LightGrey, bold = true, foreground = Screen.colors.Blue}, - [19] = {background = Screen.colors.Yellow, foreground = Screen.colors.DarkBlue}, - [20] = {background = Screen.colors.Red, bold = true, foreground = Screen.colors.Blue}, + [1] = { bold = true, foreground = Screen.colors.Blue1 }, + [2] = { reverse = true }, + [3] = { bold = true, reverse = true }, + [4] = { foreground = Screen.colors.White, background = Screen.colors.Red }, + [5] = { foreground = Screen.colors.DarkBlue, background = Screen.colors.LightGrey }, + [6] = { background = Screen.colors.Yellow }, + [7] = { foreground = Screen.colors.DarkBlue, background = Screen.colors.WebGray }, + [8] = { foreground = Screen.colors.Brown }, + [9] = { bold = true, foreground = Screen.colors.Brown }, + [10] = { background = Screen.colors.LightGrey, underline = true }, + [11] = { bold = true }, + [12] = { foreground = Screen.colors.Red }, + [13] = { foreground = Screen.colors.Red, background = Screen.colors.LightGrey }, + [14] = { background = Screen.colors.Red }, + [15] = { foreground = Screen.colors.DarkBlue, background = Screen.colors.Red }, + [16] = { foreground = Screen.colors.Black, background = Screen.colors.LightGrey }, + [17] = { background = Screen.colors.Yellow, foreground = Screen.colors.Red }, + [18] = { + background = Screen.colors.LightGrey, + bold = true, + foreground = Screen.colors.Blue, + }, + [19] = { background = Screen.colors.Yellow, foreground = Screen.colors.DarkBlue }, + [20] = { background = Screen.colors.Red, bold = true, foreground = Screen.colors.Blue }, }) end) - it("work with more than one signcolumn", function() - command("set signcolumn=yes:9") - feed("i<cr><esc>") - feed("vkzf") + it('with more than one signcolumn', function() + command('set signcolumn=yes:9') + feed('i<cr><esc>') + feed('vkzf') if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {7: }{5:^+-- 2 lines: ·············}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*6 ## grid 3 | ]]) else screen:expect([[ {7: }{5:^+-- 2 lines: ·············}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*6 | ]]) end end) - local function test_folded_cursorline() - command("set number cursorline foldcolumn=2") - command("hi link CursorLineFold Search") - insert(content1) - feed("ggzf3jj") - if multigrid then - screen:expect([[ - ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [3:---------------------------------------------]| - ## grid 2 - {7:+ }{8: 1 }{5:+-- 4 lines: This is a················}| - {6: }{9: 5 }{12:^in his cave. }| - {7: }{8: 6 } | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - ## grid 3 - | - ]]) - else - screen:expect([[ - {7:+ }{8: 1 }{5:+-- 4 lines: This is a················}| - {6: }{9: 5 }{12:^in his cave. }| - {7: }{8: 6 } | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - | - ]]) + local function test_folded_cursorline(foldtext) + if not foldtext then + command('set foldtext=') end - feed("k") - if multigrid then - screen:expect([[ - ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [3:---------------------------------------------]| - ## grid 2 - {6:+ }{9: 1 }{13:^+-- 4 lines: This is a················}| - {7: }{8: 5 }in his cave. | - {7: }{8: 6 } | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - ## grid 3 - | - ]]) - else - screen:expect([[ - {6:+ }{9: 1 }{13:^+-- 4 lines: This is a················}| - {7: }{8: 5 }in his cave. | - {7: }{8: 6 } | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - | - ]]) + command('set number cursorline foldcolumn=2') + command('hi link CursorLineFold Search') + insert(content1) + feed('ggzf3jj') + + if multigrid then + if foldtext then + screen:expect([[ + ## grid 1 + [2:---------------------------------------------]|*7 + [3:---------------------------------------------]| + ## grid 2 + {7:+ }{8: 1 }{5:+-- 4 lines: This is a················}| + {6: }{9: 5 }{12:^in his cave. }| + {7: }{8: 6 } | + {1:~ }|*4 + ## grid 3 + | + ]]) + else + screen:expect([[ + ## grid 1 + [2:---------------------------------------------]|*7 + [3:---------------------------------------------]| + ## grid 2 + {7:+ }{8: 1 }{5:This is a······························}| + {6: }{9: 5 }{12:^in his cave. }| + {7: }{8: 6 } | + {1:~ }|*4 + ## grid 3 + | + ]]) + end + else + if foldtext then + screen:expect([[ + {7:+ }{8: 1 }{5:+-- 4 lines: This is a················}| + {6: }{9: 5 }{12:^in his cave. }| + {7: }{8: 6 } | + {1:~ }|*4 + | + ]]) + else + screen:expect([[ + {7:+ }{8: 1 }{5:This is a······························}| + {6: }{9: 5 }{12:^in his cave. }| + {7: }{8: 6 } | + {1:~ }|*4 + | + ]]) + end + end + + feed('k') + + if multigrid then + if foldtext then + screen:expect([[ + ## grid 1 + [2:---------------------------------------------]|*7 + [3:---------------------------------------------]| + ## grid 2 + {6:+ }{9: 1 }{13:^+-- 4 lines: This is a················}| + {7: }{8: 5 }in his cave. | + {7: }{8: 6 } | + {1:~ }|*4 + ## grid 3 + | + ]]) + else + screen:expect([[ + ## grid 1 + [2:---------------------------------------------]|*7 + [3:---------------------------------------------]| + ## grid 2 + {6:+ }{9: 1 }{13:^This is a······························}| + {7: }{8: 5 }in his cave. | + {7: }{8: 6 } | + {1:~ }|*4 + ## grid 3 + | + ]]) + end + else + if foldtext then + screen:expect([[ + {6:+ }{9: 1 }{13:^+-- 4 lines: This is a················}| + {7: }{8: 5 }in his cave. | + {7: }{8: 6 } | + {1:~ }|*4 + | + ]]) + else + screen:expect([[ + {6:+ }{9: 1 }{13:^This is a······························}| + {7: }{8: 5 }in his cave. | + {7: }{8: 6 } | + {1:~ }|*4 + | + ]]) + end end + -- CursorLine is applied correctly with screenrow motions #22232 - feed("jgk") + feed('jgk') screen:expect_unchanged() -- CursorLine is applied correctly when closing a fold when cursor is not at fold start - feed("zo4Gzc") + feed('zo4Gzc') screen:expect_unchanged() - command("set cursorlineopt=line") - if multigrid then - screen:expect([[ - ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [3:---------------------------------------------]| - ## grid 2 - {7:+ }{8: 1 }{13:^+-- 4 lines: This is a················}| - {7: }{8: 5 }in his cave. | - {7: }{8: 6 } | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - ## grid 3 - | - ]]) - else - screen:expect([[ - {7:+ }{8: 1 }{13:^+-- 4 lines: This is a················}| - {7: }{8: 5 }in his cave. | - {7: }{8: 6 } | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - | - ]]) - end - command("set relativenumber cursorlineopt=number") - if multigrid then - screen:expect([[ - ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [3:---------------------------------------------]| - ## grid 2 - {6:+ }{9:1 }{5:^+-- 4 lines: This is a················}| - {7: }{8: 1 }in his cave. | - {7: }{8: 2 } | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - ## grid 3 - | - ]]) - else - screen:expect([[ - {6:+ }{9:1 }{5:^+-- 4 lines: This is a················}| - {7: }{8: 1 }in his cave. | - {7: }{8: 2 } | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - | - ]]) + command('set cursorlineopt=line') + + if multigrid then + if foldtext then + screen:expect([[ + ## grid 1 + [2:---------------------------------------------]|*7 + [3:---------------------------------------------]| + ## grid 2 + {7:+ }{8: 1 }{13:^+-- 4 lines: This is a················}| + {7: }{8: 5 }in his cave. | + {7: }{8: 6 } | + {1:~ }|*4 + ## grid 3 + | + ]]) + else + screen:expect([[ + ## grid 1 + [2:---------------------------------------------]|*7 + [3:---------------------------------------------]| + ## grid 2 + {7:+ }{8: 1 }{13:^This is a······························}| + {7: }{8: 5 }in his cave. | + {7: }{8: 6 } | + {1:~ }|*4 + ## grid 3 + | + ]]) + end + else + if foldtext then + screen:expect([[ + {7:+ }{8: 1 }{13:^+-- 4 lines: This is a················}| + {7: }{8: 5 }in his cave. | + {7: }{8: 6 } | + {1:~ }|*4 + | + ]]) + else + screen:expect([[ + {7:+ }{8: 1 }{13:^This is a······························}| + {7: }{8: 5 }in his cave. | + {7: }{8: 6 } | + {1:~ }|*4 + | + ]]) + end + end + + command('set relativenumber cursorlineopt=number') + + if multigrid then + if foldtext then + screen:expect([[ + ## grid 1 + [2:---------------------------------------------]|*7 + [3:---------------------------------------------]| + ## grid 2 + {6:+ }{9:1 }{5:^+-- 4 lines: This is a················}| + {7: }{8: 1 }in his cave. | + {7: }{8: 2 } | + {1:~ }|*4 + ## grid 3 + | + ]]) + else + screen:expect([[ + ## grid 1 + [2:---------------------------------------------]|*7 + [3:---------------------------------------------]| + ## grid 2 + {6:+ }{9:1 }{5:^This is a······························}| + {7: }{8: 1 }in his cave. | + {7: }{8: 2 } | + {1:~ }|*4 + ## grid 3 + | + ]]) + end + else + if foldtext then + screen:expect([[ + {6:+ }{9:1 }{5:^+-- 4 lines: This is a················}| + {7: }{8: 1 }in his cave. | + {7: }{8: 2 } | + {1:~ }|*4 + | + ]]) + else + screen:expect([[ + {6:+ }{9:1 }{5:^This is a······························}| + {7: }{8: 1 }in his cave. | + {7: }{8: 2 } | + {1:~ }|*4 + | + ]]) + end end end describe("when 'cursorline' is set", function() - it('with high-priority CursorLine', function() - command("hi! CursorLine guibg=NONE guifg=Red gui=NONE") - test_folded_cursorline() - end) - - it('with low-priority CursorLine', function() - command("hi! CursorLine guibg=NONE guifg=NONE gui=underline") - local attrs = screen:get_default_attr_ids() - attrs[12] = {underline = true} - attrs[13] = {foreground = Screen.colors.DarkBlue, background = Screen.colors.LightGrey, underline = true} - screen:set_default_attr_ids(attrs) - test_folded_cursorline() - end) + local function cursorline_tests(foldtext) + local sfx = not foldtext and ' (transparent foldtext)' or '' + it('with high-priority CursorLine' .. sfx, function() + command('hi! CursorLine guibg=NONE guifg=Red gui=NONE') + test_folded_cursorline(foldtext) + end) + + it('with low-priority CursorLine' .. sfx, function() + command('hi! CursorLine guibg=NONE guifg=NONE gui=underline') + local attrs = screen:get_default_attr_ids() + attrs[12] = { underline = true } + attrs[13] = { + foreground = Screen.colors.DarkBlue, + background = Screen.colors.LightGrey, + underline = true, + } + screen:set_default_attr_ids(attrs) + test_folded_cursorline(foldtext) + end) + end + + cursorline_tests(true) + cursorline_tests(false) end) - it("work with spell", function() - command("set spell") + it('with spell', function() + command('set spell') insert(content1) - feed("gg") - feed("zf3j") + feed('gg') + feed('zf3j') if not multigrid then - screen:expect{grid=[[ + screen:expect { + grid = [[ {5:^+-- 4 lines: This is a······················}| in his cave. | | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*4 | - ]]} + ]], + } end end) - it("work with matches", function() + it('with matches', function() insert(content1) - command("highlight MyWord gui=bold guibg=red guifg=white") + command('highlight MyWord gui=bold guibg=red guifg=white') command("call matchadd('MyWord', '\\V' . 'test', -1)") - feed("gg") - feed("zf3j") + feed('gg') + feed('zf3j') if not multigrid then - screen:expect{grid=[[ + screen:expect { + grid = [[ {5:^+-- 4 lines: This is a······················}| in his cave. | | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*4 | - ]]} + ]], + } end end) - it("works with multibyte fillchars", function() + it('with multibyte fillchars', function() insert([[ aa bb @@ -309,22 +366,16 @@ describe("folded lines", function() dd ee ff]]) - command("set fillchars+=foldopen:▾,foldsep:│,foldclose:▸") + command('set fillchars+=foldopen:▾,foldsep:│,foldclose:▸') feed_command('1') - command("set foldcolumn=2") + command('set foldcolumn=2') feed('zf4j') feed('zf2j') feed('zO') if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {7:▾▾}^aa | @@ -350,17 +401,11 @@ describe("folded lines", function() ]]) end - feed_command("set rightleft") + feed_command('set rightleft') if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 a^a{7:▾▾}| @@ -386,77 +431,47 @@ describe("folded lines", function() ]]) end - feed_command("set norightleft") + feed_command('set norightleft') if multigrid then - meths.input_mouse('left', 'press', '', 2, 0, 1) + api.nvim_input_mouse('left', 'press', '', 2, 0, 1) screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {7:▾▸}{5:^+--- 5 lines: aa··························}| {7:│ }ff | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*5 ## grid 3 :set norightleft | ]]) else - meths.input_mouse('left', 'press', '', 0, 0, 1) + api.nvim_input_mouse('left', 'press', '', 0, 0, 1) screen:expect([[ {7:▾▸}{5:^+--- 5 lines: aa··························}| {7:│ }ff | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*5 :set norightleft | ]]) end if multigrid then - meths.input_mouse('left', 'press', '', 2, 0, 0) + api.nvim_input_mouse('left', 'press', '', 2, 0, 0) screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {7:▸ }{5:^+-- 6 lines: aa···························}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*6 ## grid 3 :set norightleft | ]]) else - meths.input_mouse('left', 'press', '', 0, 0, 0) + api.nvim_input_mouse('left', 'press', '', 0, 0, 0) screen:expect([[ {7:▸ }{5:^+-- 6 lines: aa···························}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*6 :set norightleft | ]]) end @@ -464,53 +479,35 @@ describe("folded lines", function() -- Add a winbar to avoid double-clicks command('setlocal winbar=!!!!!!') if multigrid then - meths.input_mouse('left', 'press', '', 2, 1, 0) + api.nvim_input_mouse('left', 'press', '', 2, 1, 0) screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {11:!!!!!! }| {7:▾▸}{5:^+--- 5 lines: aa··························}| {7:│ }ff | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*4 ## grid 3 :set norightleft | ]]) else - meths.input_mouse('left', 'press', '', 0, 1, 0) + api.nvim_input_mouse('left', 'press', '', 0, 1, 0) screen:expect([[ {11:!!!!!! }| {7:▾▸}{5:^+--- 5 lines: aa··························}| {7:│ }ff | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*4 :set norightleft | ]]) end if multigrid then - meths.input_mouse('left', 'press', '', 2, 1, 1) + api.nvim_input_mouse('left', 'press', '', 2, 1, 1) screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {11:!!!!!! }| @@ -524,7 +521,7 @@ describe("folded lines", function() :set norightleft | ]]) else - meths.input_mouse('left', 'press', '', 0, 1, 1) + api.nvim_input_mouse('left', 'press', '', 0, 1, 1) screen:expect([[ {11:!!!!!! }| {7:▾▾}^aa | @@ -538,7 +535,7 @@ describe("folded lines", function() end end) - it("works with split", function() + it('with split', function() insert([[ aa bb @@ -547,12 +544,12 @@ describe("folded lines", function() ee ff]]) feed_command('2') - command("set foldcolumn=1") + command('set foldcolumn=1') feed('zf3j') feed_command('1') feed('zf2j') feed('zO') - feed_command("rightbelow new") + feed_command('rightbelow new') insert([[ aa bb @@ -561,20 +558,17 @@ describe("folded lines", function() ee ff]]) feed_command('2') - command("set foldcolumn=1") + command('set foldcolumn=1') feed('zf3j') feed_command('1') feed('zf2j') if multigrid then - meths.input_mouse('left', 'press', '', 4, 0, 0) + api.nvim_input_mouse('left', 'press', '', 4, 0, 0) screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*2 {2:[No Name] [+] }| - [4:---------------------------------------------]| - [4:---------------------------------------------]| - [4:---------------------------------------------]| + [4:---------------------------------------------]|*3 {3:[No Name] [+] }| [3:---------------------------------------------]| ## grid 2 @@ -588,7 +582,7 @@ describe("folded lines", function() {7:│}ff | ]]) else - meths.input_mouse('left', 'press', '', 0, 3, 0) + api.nvim_input_mouse('left', 'press', '', 0, 3, 0) screen:expect([[ {7:-}aa | {7:-}bb | @@ -602,15 +596,12 @@ describe("folded lines", function() end if multigrid then - meths.input_mouse('left', 'press', '', 4, 1, 0) + api.nvim_input_mouse('left', 'press', '', 4, 1, 0) screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*2 {2:[No Name] [+] }| - [4:---------------------------------------------]| - [4:---------------------------------------------]| - [4:---------------------------------------------]| + [4:---------------------------------------------]|*3 {3:[No Name] [+] }| [3:---------------------------------------------]| ## grid 2 @@ -624,7 +615,7 @@ describe("folded lines", function() {7:2}cc | ]]) else - meths.input_mouse('left', 'press', '', 0, 4, 0) + api.nvim_input_mouse('left', 'press', '', 0, 4, 0) screen:expect([[ {7:-}aa | {7:-}bb | @@ -638,15 +629,12 @@ describe("folded lines", function() end if multigrid then - meths.input_mouse('left', 'press', '', 2, 1, 0) + api.nvim_input_mouse('left', 'press', '', 2, 1, 0) screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*2 {3:[No Name] [+] }| - [4:---------------------------------------------]| - [4:---------------------------------------------]| - [4:---------------------------------------------]| + [4:---------------------------------------------]|*3 {2:[No Name] [+] }| [3:---------------------------------------------]| ## grid 2 @@ -660,7 +648,7 @@ describe("folded lines", function() {7:2}cc | ]]) else - meths.input_mouse('left', 'press', '', 0, 1, 0) + api.nvim_input_mouse('left', 'press', '', 0, 1, 0) screen:expect([[ {7:-}aa | {7:+}{5:^+--- 4 lines: bb···························}| @@ -674,15 +662,12 @@ describe("folded lines", function() end if multigrid then - meths.input_mouse('left', 'press', '', 2, 0, 0) + api.nvim_input_mouse('left', 'press', '', 2, 0, 0) screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*2 {3:[No Name] [+] }| - [4:---------------------------------------------]| - [4:---------------------------------------------]| - [4:---------------------------------------------]| + [4:---------------------------------------------]|*3 {2:[No Name] [+] }| [3:---------------------------------------------]| ## grid 2 @@ -696,7 +681,7 @@ describe("folded lines", function() {7:2}cc | ]]) else - meths.input_mouse('left', 'press', '', 0, 0, 0) + api.nvim_input_mouse('left', 'press', '', 0, 0, 0) screen:expect([[ {7:+}{5:^+-- 6 lines: aa····························}| {1:~ }| @@ -710,7 +695,7 @@ describe("folded lines", function() end end) - it("works with vsplit", function() + it('with vsplit', function() insert([[ aa bb @@ -719,12 +704,12 @@ describe("folded lines", function() ee ff]]) feed_command('2') - command("set foldcolumn=1") + command('set foldcolumn=1') feed('zf3j') feed_command('1') feed('zf2j') feed('zO') - feed_command("rightbelow vnew") + feed_command('rightbelow vnew') insert([[ aa bb @@ -733,20 +718,15 @@ describe("folded lines", function() ee ff]]) feed_command('2') - command("set foldcolumn=1") + command('set foldcolumn=1') feed('zf3j') feed_command('1') feed('zf2j') if multigrid then - meths.input_mouse('left', 'press', '', 4, 0, 0) + api.nvim_input_mouse('left', 'press', '', 4, 0, 0) screen:expect([[ ## grid 1 - [2:----------------------]{2:│}[4:----------------------]| - [2:----------------------]{2:│}[4:----------------------]| - [2:----------------------]{2:│}[4:----------------------]| - [2:----------------------]{2:│}[4:----------------------]| - [2:----------------------]{2:│}[4:----------------------]| - [2:----------------------]{2:│}[4:----------------------]| + [2:----------------------]{2:│}[4:----------------------]|*6 {2:[No Name] [+] }{3:[No Name] [+] }| [3:---------------------------------------------]| ## grid 2 @@ -762,12 +742,10 @@ describe("folded lines", function() {7:-}^aa | {7:+}{5:+--- 4 lines: bb····}| {7:│}ff | - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*3 ]]) else - meths.input_mouse('left', 'press', '', 0, 0, 23) + api.nvim_input_mouse('left', 'press', '', 0, 0, 23) screen:expect([[ {7:-}aa {2:│}{7:-}^aa | {7:-}bb {2:│}{7:+}{5:+--- 4 lines: bb····}| @@ -781,15 +759,10 @@ describe("folded lines", function() end if multigrid then - meths.input_mouse('left', 'press', '', 4, 1, 0) + api.nvim_input_mouse('left', 'press', '', 4, 1, 0) screen:expect([[ ## grid 1 - [2:----------------------]{2:│}[4:----------------------]| - [2:----------------------]{2:│}[4:----------------------]| - [2:----------------------]{2:│}[4:----------------------]| - [2:----------------------]{2:│}[4:----------------------]| - [2:----------------------]{2:│}[4:----------------------]| - [2:----------------------]{2:│}[4:----------------------]| + [2:----------------------]{2:│}[4:----------------------]|*6 {2:[No Name] [+] }{3:[No Name] [+] }| [3:---------------------------------------------]| ## grid 2 @@ -810,7 +783,7 @@ describe("folded lines", function() {7:│}ff | ]]) else - meths.input_mouse('left', 'press', '', 0, 1, 23) + api.nvim_input_mouse('left', 'press', '', 0, 1, 23) screen:expect([[ {7:-}aa {2:│}{7:-}^aa | {7:-}bb {2:│}{7:-}bb | @@ -824,24 +797,17 @@ describe("folded lines", function() end if multigrid then - meths.input_mouse('left', 'press', '', 2, 1, 0) + api.nvim_input_mouse('left', 'press', '', 2, 1, 0) screen:expect([[ ## grid 1 - [2:----------------------]{2:│}[4:----------------------]| - [2:----------------------]{2:│}[4:----------------------]| - [2:----------------------]{2:│}[4:----------------------]| - [2:----------------------]{2:│}[4:----------------------]| - [2:----------------------]{2:│}[4:----------------------]| - [2:----------------------]{2:│}[4:----------------------]| + [2:----------------------]{2:│}[4:----------------------]|*6 {3:[No Name] [+] }{2:[No Name] [+] }| [3:---------------------------------------------]| ## grid 2 {7:-}aa | {7:+}{5:^+--- 4 lines: bb····}| {7:│}ff | - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*3 ## grid 3 :1 | ## grid 4 @@ -853,7 +819,7 @@ describe("folded lines", function() {7:│}ff | ]]) else - meths.input_mouse('left', 'press', '', 0, 1, 0) + api.nvim_input_mouse('left', 'press', '', 0, 1, 0) screen:expect([[ {7:-}aa {2:│}{7:-}aa | {7:+}{5:^+--- 4 lines: bb····}{2:│}{7:-}bb | @@ -867,24 +833,15 @@ describe("folded lines", function() end if multigrid then - meths.input_mouse('left', 'press', '', 2, 0, 0) + api.nvim_input_mouse('left', 'press', '', 2, 0, 0) screen:expect([[ ## grid 1 - [2:----------------------]{2:│}[4:----------------------]| - [2:----------------------]{2:│}[4:----------------------]| - [2:----------------------]{2:│}[4:----------------------]| - [2:----------------------]{2:│}[4:----------------------]| - [2:----------------------]{2:│}[4:----------------------]| - [2:----------------------]{2:│}[4:----------------------]| + [2:----------------------]{2:│}[4:----------------------]|*6 {3:[No Name] [+] }{2:[No Name] [+] }| [3:---------------------------------------------]| ## grid 2 {7:+}{5:^+-- 6 lines: aa·····}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*5 ## grid 3 :1 | ## grid 4 @@ -896,7 +853,7 @@ describe("folded lines", function() {7:│}ff | ]]) else - meths.input_mouse('left', 'press', '', 0, 0, 0) + api.nvim_input_mouse('left', 'press', '', 0, 0, 0) screen:expect([[ {7:+}{5:^+-- 6 lines: aa·····}{2:│}{7:-}aa | {1:~ }{2:│}{7:-}bb | @@ -910,7 +867,7 @@ describe("folded lines", function() end end) - it("works with tab", function() + it('with tabpages', function() insert([[ aa bb @@ -919,23 +876,18 @@ describe("folded lines", function() ee ff]]) feed_command('2') - command("set foldcolumn=2") + command('set foldcolumn=2') feed('zf3j') feed_command('1') feed('zf2j') feed('zO') - feed_command("tab split") + feed_command('tab split') if multigrid then - meths.input_mouse('left', 'press', '', 4, 1, 1) + api.nvim_input_mouse('left', 'press', '', 4, 1, 1) screen:expect([[ ## grid 1 {10: + [No Name] }{11: + [No Name] }{2: }{10:X}| - [4:---------------------------------------------]| - [4:---------------------------------------------]| - [4:---------------------------------------------]| - [4:---------------------------------------------]| - [4:---------------------------------------------]| - [4:---------------------------------------------]| + [4:---------------------------------------------]|*6 [3:---------------------------------------------]| ## grid 2 (hidden) {7:- }aa | @@ -951,35 +903,26 @@ describe("folded lines", function() {7:- }^aa | {7:│+}{5:+--- 4 lines: bb··························}| {7:│ }ff | - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*3 ]]) else - meths.input_mouse('left', 'press', '', 0, 2, 1) + api.nvim_input_mouse('left', 'press', '', 0, 2, 1) screen:expect([[ {10: + [No Name] }{11: + [No Name] }{2: }{10:X}| {7:- }^aa | {7:│+}{5:+--- 4 lines: bb··························}| {7:│ }ff | - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*3 :tab split | ]]) end if multigrid then - meths.input_mouse('left', 'press', '', 4, 0, 0) + api.nvim_input_mouse('left', 'press', '', 4, 0, 0) screen:expect([[ ## grid 1 {10: + [No Name] }{11: + [No Name] }{2: }{10:X}| - [4:---------------------------------------------]| - [4:---------------------------------------------]| - [4:---------------------------------------------]| - [4:---------------------------------------------]| - [4:---------------------------------------------]| - [4:---------------------------------------------]| + [4:---------------------------------------------]|*6 [3:---------------------------------------------]| ## grid 2 (hidden) {7:- }aa | @@ -993,138 +936,90 @@ describe("folded lines", function() :tab split | ## grid 4 {7:+ }{5:^+-- 6 lines: aa···························}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*5 ]]) else - meths.input_mouse('left', 'press', '', 0, 1, 0) + api.nvim_input_mouse('left', 'press', '', 0, 1, 0) screen:expect([[ {10: + [No Name] }{11: + [No Name] }{2: }{10:X}| {7:+ }{5:^+-- 6 lines: aa···························}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*5 :tab split | ]]) end - feed_command("tabnext") + feed_command('tabnext') if multigrid then - meths.input_mouse('left', 'press', '', 2, 1, 1) + api.nvim_input_mouse('left', 'press', '', 2, 1, 1) screen:expect([[ ## grid 1 {11: + [No Name] }{10: + [No Name] }{2: }{10:X}| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*6 [3:---------------------------------------------]| ## grid 2 {7:- }^aa | {7:│+}{5:+--- 4 lines: bb··························}| {7:│ }ff | - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*3 ## grid 3 :tabnext | ## grid 4 (hidden) {7:+ }{5:+-- 6 lines: aa···························}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*5 ]]) else - meths.input_mouse('left', 'press', '', 0, 2, 1) + api.nvim_input_mouse('left', 'press', '', 0, 2, 1) screen:expect([[ {11: + [No Name] }{10: + [No Name] }{2: }{10:X}| {7:- }^aa | {7:│+}{5:+--- 4 lines: bb··························}| {7:│ }ff | - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*3 :tabnext | ]]) end if multigrid then - meths.input_mouse('left', 'press', '', 2, 0, 0) + api.nvim_input_mouse('left', 'press', '', 2, 0, 0) screen:expect([[ ## grid 1 {11: + [No Name] }{10: + [No Name] }{2: }{10:X}| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*6 [3:---------------------------------------------]| ## grid 2 {7:+ }{5:^+-- 6 lines: aa···························}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*5 ## grid 3 :tabnext | ## grid 4 (hidden) {7:+ }{5:+-- 6 lines: aa···························}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*5 ]]) else - meths.input_mouse('left', 'press', '', 0, 1, 0) + api.nvim_input_mouse('left', 'press', '', 0, 1, 0) screen:expect([[ {11: + [No Name] }{10: + [No Name] }{2: }{10:X}| {7:+ }{5:^+-- 6 lines: aa···························}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*5 :tabnext | ]]) end end) - it("works with multibyte text", function() - eq(true, meths.get_option_value('arabicshape', {})) + it('with multibyte text', function() + eq(true, api.nvim_get_option_value('arabicshape', {})) insert([[ å 语 x̨̣̘̫̲͚͎̎͂̀̂͛͛̾͢͟ العَرَبِيَّة möre text]]) if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 å 语 x̨̣̘̫̲͚͎̎͂̀̂͛͛̾͢ ﺎﻠﻋَﺮَﺒِﻳَّﺓ | möre tex^t | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*5 ## grid 3 | ]]) @@ -1132,11 +1027,7 @@ describe("folded lines", function() screen:expect([[ å 语 x̨̣̘̫̲͚͎̎͂̀̂͛͛̾͢ ﺎﻠﻋَﺮَﺒِﻳَّﺓ | möre tex^t | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*5 | ]]) end @@ -1145,215 +1036,119 @@ describe("folded lines", function() if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {5:^+-- 2 lines: å 语 x̨̣̘̫̲͚͎̎͂̀̂͛͛̾͢ ﺎﻠﻋَﺮَﺒِﻳَّﺓ·················}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*6 ## grid 3 | ]]) else screen:expect([[ {5:^+-- 2 lines: å 语 x̨̣̘̫̲͚͎̎͂̀̂͛͛̾͢ ﺎﻠﻋَﺮَﺒِﻳَّﺓ·················}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*6 | ]]) end - feed_command("set noarabicshape") + feed_command('set noarabicshape') if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {5:^+-- 2 lines: å 语 x̨̣̘̫̲͚͎̎͂̀̂͛͛̾͢ العَرَبِيَّة·················}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*6 ## grid 3 :set noarabicshape | ]]) else screen:expect([[ {5:^+-- 2 lines: å 语 x̨̣̘̫̲͚͎̎͂̀̂͛͛̾͢ العَرَبِيَّة·················}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*6 :set noarabicshape | ]]) end - feed_command("set number foldcolumn=2") + feed_command('set number foldcolumn=2') if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {7:+ }{8: 1 }{5:^+-- 2 lines: å 语 x̨̣̘̫̲͚͎̎͂̀̂͛͛̾͢ العَرَبِيَّة···········}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*6 ## grid 3 :set number foldcolumn=2 | ]]) else screen:expect([[ {7:+ }{8: 1 }{5:^+-- 2 lines: å 语 x̨̣̘̫̲͚͎̎͂̀̂͛͛̾͢ العَرَبِيَّة···········}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*6 :set number foldcolumn=2 | ]]) end -- Note: too much of the folded line gets cut off.This is a vim bug. - feed_command("set rightleft") + feed_command('set rightleft') if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {5:···········ةيَّبِرَعَلا x̨̣̘̫̲͚͎̎͂̀̂͛͛̾͢ 语 å :senil 2 --^+}{8: 1 }{7: +}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| + {1: ~}|*6 ## grid 3 :set rightleft | ]]) else screen:expect([[ {5:···········ةيَّبِرَعَلا x̨̣̘̫̲͚͎̎͂̀̂͛͛̾͢ 语 å :senil 2 --^+}{8: 1 }{7: +}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| + {1: ~}|*6 :set rightleft | ]]) end - feed_command("set nonumber foldcolumn=0") + feed_command('set nonumber foldcolumn=0') if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {5:·················ةيَّبِرَعَلا x̨̣̘̫̲͚͎̎͂̀̂͛͛̾͢ 语 å :senil 2 --^+}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| + {1: ~}|*6 ## grid 3 :set nonumber foldcolumn=0 | ]]) else screen:expect([[ {5:·················ةيَّبِرَعَلا x̨̣̘̫̲͚͎̎͂̀̂͛͛̾͢ 语 å :senil 2 --^+}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| + {1: ~}|*6 :set nonumber foldcolumn=0 | ]]) end - feed_command("set arabicshape") + feed_command('set arabicshape') if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {5:·················ﺔﻴَّﺑِﺮَﻌَﻟﺍ x̨̣̘̫̲͚͎̎͂̀̂͛͛̾͢ 语 å :senil 2 --^+}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| + {1: ~}|*6 ## grid 3 :set arabicshape | ]]) else screen:expect([[ {5:·················ﺔﻴَّﺑِﺮَﻌَﻟﺍ x̨̣̘̫̲͚͎̎͂̀̂͛͛̾͢ 语 å :senil 2 --^+}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| + {1: ~}|*6 :set arabicshape | ]]) end @@ -1362,22 +1157,12 @@ describe("folded lines", function() if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 ﺔﻴَّﺑِﺮَﻌَ^ﻟﺍ x̨̣̘̫̲͚͎̎͂̀̂͛͛̾͢ 语 å| txet eröm| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| + {1: ~}|*5 ## grid 3 :set arabicshape | ]]) @@ -1385,11 +1170,7 @@ describe("folded lines", function() screen:expect([[ ﺔﻴَّﺑِﺮَﻌَ^ﻟﺍ x̨̣̘̫̲͚͎̎͂̀̂͛͛̾͢ 语 å| txet eröm| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| + {1: ~}|*5 :set arabicshape | ]]) end @@ -1398,22 +1179,12 @@ describe("folded lines", function() if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 ةيَّبِرَعَ^لا x̨̣̘̫̲͚͎̎͂̀̂͛͛̾͢ 语 å| txet eröm| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| + {1: ~}|*5 ## grid 3 :set noarabicshape | ]]) @@ -1421,229 +1192,179 @@ describe("folded lines", function() screen:expect([[ ةيَّبِرَعَ^لا x̨̣̘̫̲͚͎̎͂̀̂͛͛̾͢ 语 å| txet eröm| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| - {1: ~}| + {1: ~}|*5 :set noarabicshape | ]]) end - end) - it("work in cmdline window", function() - feed_command("set foldmethod=manual") - feed_command("let x = 1") - feed_command("/alpha") - feed_command("/omega") + it('in cmdline window', function() + feed_command('set foldmethod=manual foldcolumn=1') + feed_command('let x = 1') + feed_command('/alpha') + feed_command('/omega') - feed("<cr>q:") + feed('<cr>q:') if multigrid then screen:expect([[ ## grid 1 [2:---------------------------------------------]| {2:[No Name] }| - [4:---------------------------------------------]| - [4:---------------------------------------------]| - [4:---------------------------------------------]| - [4:---------------------------------------------]| + [4:---------------------------------------------]|*4 {3:[Command Line] }| [3:---------------------------------------------]| ## grid 2 - | + {7: } | ## grid 3 : | ## grid 4 - {1::}set foldmethod=manual | - {1::}let x = 1 | - {1::}^ | + {1::}{7: }set foldmethod=manual foldcolumn=1 | + {1::}{7: }let x = 1 | + {1::}{7: }^ | {1:~ }| ]]) else screen:expect([[ - | + {7: } | {2:[No Name] }| - {1::}set foldmethod=manual | - {1::}let x = 1 | - {1::}^ | + {1::}{7: }set foldmethod=manual foldcolumn=1 | + {1::}{7: }let x = 1 | + {1::}{7: }^ | {1:~ }| {3:[Command Line] }| : | ]]) end - feed("kzfk") + feed('kzfk') if multigrid then screen:expect([[ ## grid 1 [2:---------------------------------------------]| {2:[No Name] }| - [4:---------------------------------------------]| - [4:---------------------------------------------]| - [4:---------------------------------------------]| - [4:---------------------------------------------]| + [4:---------------------------------------------]|*4 {3:[Command Line] }| [3:---------------------------------------------]| ## grid 2 - | + {7: } | ## grid 3 : | ## grid 4 - {1::}{5:^+-- 2 lines: set foldmethod=manual·········}| - {1::} | - {1:~ }| - {1:~ }| + {1::}{7:+}{5:^+-- 2 lines: set foldmethod=manual foldcol}| + {1::}{7: } | + {1:~ }|*2 ]]) else screen:expect([[ - | + {7: } | {2:[No Name] }| - {1::}{5:^+-- 2 lines: set foldmethod=manual·········}| - {1::} | - {1:~ }| - {1:~ }| + {1::}{7:+}{5:^+-- 2 lines: set foldmethod=manual foldcol}| + {1::}{7: } | + {1:~ }|*2 {3:[Command Line] }| : | ]]) end - feed("<cr>") + feed('<cr>') if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 - ^ | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {7: }^ | + {1:~ }|*6 ## grid 3 : | ]]) else screen:expect([[ - ^ | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {7: }^ | + {1:~ }|*6 : | ]]) end - feed("/<c-f>") + feed('/<c-f>') if multigrid then screen:expect([[ ## grid 1 [2:---------------------------------------------]| {2:[No Name] }| - [5:---------------------------------------------]| - [5:---------------------------------------------]| - [5:---------------------------------------------]| - [5:---------------------------------------------]| + [5:---------------------------------------------]|*4 {3:[Command Line] }| [3:---------------------------------------------]| ## grid 2 - | + {7: } | ## grid 3 / | ## grid 5 - {1:/}alpha | - {1:/}{6:omega} | - {1:/}^ | + {1:/}{7: }alpha | + {1:/}{7: }{6:omega} | + {1:/}{7: }^ | {1:~ }| ]]) else screen:expect([[ - | + {7: } | {2:[No Name] }| - {1:/}alpha | - {1:/}{6:omega} | - {1:/}^ | + {1:/}{7: }alpha | + {1:/}{7: }{6:omega} | + {1:/}{7: }^ | {1:~ }| {3:[Command Line] }| / | ]]) end - feed("ggzfG") + feed('ggzfG') if multigrid then screen:expect([[ ## grid 1 [2:---------------------------------------------]| {2:[No Name] }| - [5:---------------------------------------------]| - [5:---------------------------------------------]| - [5:---------------------------------------------]| - [5:---------------------------------------------]| + [5:---------------------------------------------]|*4 {3:[Command Line] }| [3:---------------------------------------------]| ## grid 2 - | + {7: } | ## grid 3 / | ## grid 5 - {1:/}{5:^+-- 3 lines: alpha·························}| - {1:~ }| - {1:~ }| - {1:~ }| + {1:/}{7:+}{5:^+-- 3 lines: alpha························}| + {1:~ }|*3 ]]) else screen:expect([[ - | + {7: } | {2:[No Name] }| - {1:/}{5:^+-- 3 lines: alpha·························}| - {1:~ }| - {1:~ }| - {1:~ }| + {1:/}{7:+}{5:^+-- 3 lines: alpha························}| + {1:~ }|*3 {3:[Command Line] }| / | ]]) end - end) - it("work with autoresize", function() + it('foldcolumn autoresize', function() + fn.setline(1, 'line 1') + fn.setline(2, 'line 2') + fn.setline(3, 'line 3') + fn.setline(4, 'line 4') - funcs.setline(1, 'line 1') - funcs.setline(2, 'line 2') - funcs.setline(3, 'line 3') - funcs.setline(4, 'line 4') - - feed("zfj") - command("set foldcolumn=0") + feed('zfj') + command('set foldcolumn=0') if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {5:^+-- 2 lines: line 1·························}| line 3 | line 4 | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*4 ## grid 3 | ]]) @@ -1652,34 +1373,22 @@ describe("folded lines", function() {5:^+-- 2 lines: line 1·························}| line 3 | line 4 | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*4 | ]]) end -- should adapt to the current nesting of folds (e.g., 1) - command("set foldcolumn=auto:1") + command('set foldcolumn=auto:1') if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {7:+}{5:^+-- 2 lines: line 1························}| {7: }line 3 | {7: }line 4 | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*4 ## grid 3 | ]]) @@ -1688,267 +1397,140 @@ describe("folded lines", function() {7:+}{5:^+-- 2 lines: line 1························}| {7: }line 3 | {7: }line 4 | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*4 | ]]) end - command("set foldcolumn=auto") + command('set foldcolumn=auto') if multigrid then - screen:expect{grid=[[ + screen:expect { + grid = [[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {7:+}{5:^+-- 2 lines: line 1························}| {7: }line 3 | {7: }line 4 | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*4 ## grid 3 | - ]], unchanged=true} + ]], + unchanged = true, + } else - screen:expect{grid=[[ + screen:expect { + grid = [[ {7:+}{5:^+-- 2 lines: line 1························}| {7: }line 3 | {7: }line 4 | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*4 | - ]], unchanged=true} + ]], + unchanged = true, + } end -- fdc should not change with a new fold as the maximum is 1 - feed("zf3j") + feed('zf3j') if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {7:+}{5:^+-- 4 lines: line 1························}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*6 ## grid 3 | ]]) else screen:expect([[ {7:+}{5:^+-- 4 lines: line 1························}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*6 | ]]) end - command("set foldcolumn=auto:1") - if multigrid then screen:expect{grid=[[ + command('set foldcolumn=auto:1') + if multigrid then + screen:expect { + grid = [[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {7:+}{5:^+-- 4 lines: line 1························}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*6 ## grid 3 | - ]], unchanged=true} + ]], + unchanged = true, + } else - screen:expect{grid=[[ + screen:expect { + grid = [[ {7:+}{5:^+-- 4 lines: line 1························}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*6 | - ]], unchanged=true} + ]], + unchanged = true, + } end -- relax the maximum fdc thus fdc should expand to -- accommodate the current number of folds - command("set foldcolumn=auto:4") + command('set foldcolumn=auto:4') if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {7:+ }{5:^+-- 4 lines: line 1·······················}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*6 ## grid 3 | ]]) else screen:expect([[ {7:+ }{5:^+-- 4 lines: line 1·······················}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*6 | ]]) end end) - it('does not crash when foldtext is longer than columns #12988', function() + it('no crash when foldtext is longer than columns #12988', function() exec([[ function! MyFoldText() abort return repeat('-', &columns + 100) endfunction ]]) command('set foldtext=MyFoldText()') - feed("i<cr><esc>") - feed("vkzf") + feed('i<cr><esc>') + feed('vkzf') if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {5:^---------------------------------------------}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*6 ## grid 3 | ]]) else screen:expect([[ {5:^---------------------------------------------}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*6 | ]]) end assert_alive() end) - it('work correctly with :move #18668', function() - screen:try_resize(45, 12) - exec([[ - set foldmethod=expr foldexpr=indent(v:lnum) - let content = ['', '', 'Line1', ' Line2', ' Line3', - \ 'Line4', ' Line5', ' Line6', - \ 'Line7', ' Line8', ' Line9'] - call append(0, content) - normal! zM - call cursor(4, 1) - move 2 - move 1 - ]]) - if multigrid then - screen:expect([[ - ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [3:---------------------------------------------]| - ## grid 2 - | - {5:^+-- 2 lines: Line2··························}| - | - Line1 | - Line4 | - {5:+-- 2 lines: Line5··························}| - Line7 | - {5:+-- 2 lines: Line8··························}| - | - {1:~ }| - {1:~ }| - ## grid 3 - | - ]]) - else - screen:expect([[ - | - {5:^+-- 2 lines: Line2··························}| - | - Line1 | - Line4 | - {5:+-- 2 lines: Line5··························}| - Line7 | - {5:+-- 2 lines: Line8··························}| - | - {1:~ }| - {1:~ }| - | - ]]) - end - end) - it('fold text is shown when text has been scrolled to the right #19123', function() insert(content1) command('set number nowrap') @@ -1957,13 +1539,7 @@ describe("folded lines", function() if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {8: 1 }^This is a | @@ -1971,8 +1547,7 @@ describe("folded lines", function() {8: 3 }{5:+-- 2 lines: sentence composed by·······}| {8: 5 }in his cave. | {8: 6 } | - {1:~ }| - {1:~ }| + {1:~ }|*2 ## grid 3 | ]]) @@ -1983,8 +1558,7 @@ describe("folded lines", function() {8: 3 }{5:+-- 2 lines: sentence composed by·······}| {8: 5 }in his cave. | {8: 6 } | - {1:~ }| - {1:~ }| + {1:~ }|*2 | ]]) end @@ -1993,13 +1567,7 @@ describe("folded lines", function() if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {8: 1 }^his is a | @@ -2007,8 +1575,7 @@ describe("folded lines", function() {8: 3 }{5:+-- 2 lines: sentence composed by·······}| {8: 5 }n his cave. | {8: 6 } | - {1:~ }| - {1:~ }| + {1:~ }|*2 ## grid 3 | ]]) @@ -2019,34 +1586,52 @@ describe("folded lines", function() {8: 3 }{5:+-- 2 lines: sentence composed by·······}| {8: 5 }n his cave. | {8: 6 } | - {1:~ }| - {1:~ }| + {1:~ }|*2 | ]]) end end) it('fold attached virtual lines are drawn and scrolled correctly #21837', function() - funcs.setline(1, 'line 1') - funcs.setline(2, 'line 2') - funcs.setline(3, 'line 3') - funcs.setline(4, 'line 4') - feed("zfj") - local ns = meths.create_namespace('ns') - meths.buf_set_extmark(0, ns, 0, 0, { virt_lines_above = true, virt_lines = {{{"virt_line above line 1", ""}}} }) - meths.buf_set_extmark(0, ns, 1, 0, { virt_lines = {{{"virt_line below line 2", ""}}} }) - meths.buf_set_extmark(0, ns, 2, 0, { virt_lines_above = true, virt_lines = {{{"virt_line above line 3", ""}}} }) - meths.buf_set_extmark(0, ns, 3, 0, { virt_lines = {{{"virt_line below line 4", ""}}} }) - if multigrid then - screen:expect{grid=[[ - ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + fn.setline(1, 'line 1') + fn.setline(2, 'line 2') + fn.setline(3, 'line 3') + fn.setline(4, 'line 4') + feed('zfj') + local ns = api.nvim_create_namespace('ns') + api.nvim_buf_set_extmark( + 0, + ns, + 0, + 0, + { virt_lines_above = true, virt_lines = { { { 'virt_line above line 1', '' } } } } + ) + api.nvim_buf_set_extmark( + 0, + ns, + 1, + 0, + { virt_lines = { { { 'virt_line below line 2', '' } } } } + ) + api.nvim_buf_set_extmark( + 0, + ns, + 2, + 0, + { virt_lines_above = true, virt_lines = { { { 'virt_line above line 3', '' } } } } + ) + api.nvim_buf_set_extmark( + 0, + ns, + 3, + 0, + { virt_lines = { { { 'virt_line below line 4', '' } } } } + ) + if multigrid then + screen:expect { + grid = [[ + ## grid 1 + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {5:^+-- 2 lines: line 1·························}| @@ -2054,13 +1639,22 @@ describe("folded lines", function() line 3 | line 4 | virt_line below line 4 | - {1:~ }| - {1:~ }| + {1:~ }|*2 ## grid 3 | - ]], win_viewport={ - [2] = {win = {id = 1000}, topline = 0, botline = 5, curline = 0, curcol = 0, linecount = 4, sum_scroll_delta = 0}; - }} + ]], + win_viewport = { + [2] = { + win = 1000, + topline = 0, + botline = 5, + curline = 0, + curcol = 0, + linecount = 4, + sum_scroll_delta = 0, + }, + }, + } else screen:expect([[ {5:^+-- 2 lines: line 1·························}| @@ -2068,62 +1662,53 @@ describe("folded lines", function() line 3 | line 4 | virt_line below line 4 | - {1:~ }| - {1:~ }| + {1:~ }|*2 | ]]) end feed('jzfj') if multigrid then - screen:expect{grid=[[ + screen:expect { + grid = [[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {5:+-- 2 lines: line 1·························}| {5:^+-- 2 lines: line 3·························}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*5 ## grid 3 | - ]], win_viewport={ - [2] = {win = {id = 1000}, topline = 0, botline = 5, curline = 2, curcol = 0, linecount = 4, sum_scroll_delta = 0}; - }} + ]], + win_viewport = { + [2] = { + win = 1000, + topline = 0, + botline = 5, + curline = 2, + curcol = 0, + linecount = 4, + sum_scroll_delta = 0, + }, + }, + } else screen:expect([[ {5:+-- 2 lines: line 1·························}| {5:^+-- 2 lines: line 3·························}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*5 | ]]) end feed('kzo<C-Y>') - funcs.setline(5, 'line 5') + fn.setline(5, 'line 5') if multigrid then - screen:expect{grid=[[ + screen:expect { + grid = [[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 virt_line above line 1 | @@ -2135,9 +1720,19 @@ describe("folded lines", function() {1:~ }| ## grid 3 | - ]], win_viewport={ - [2] = {win = {id = 1000}, topline = 0, botline = 6, curline = 0, curcol = 0, linecount = 5, sum_scroll_delta = -1}; - }} + ]], + win_viewport = { + [2] = { + win = 1000, + topline = 0, + botline = 6, + curline = 0, + curcol = 0, + linecount = 5, + sum_scroll_delta = -1, + }, + }, + } else screen:expect([[ virt_line above line 1 | @@ -2151,7 +1746,7 @@ describe("folded lines", function() ]]) end - meths.input_mouse('left', 'press', '', multigrid and 2 or 0, 4, 0) + api.nvim_input_mouse('left', 'press', '', multigrid and 2 or 0, 4, 0) eq({ screencol = 1, screenrow = 5, @@ -2161,20 +1756,21 @@ describe("folded lines", function() line = 3, column = 1, coladd = 0, - }, funcs.getmousepos()) - - meths.buf_set_extmark(0, ns, 1, 0, { virt_lines = {{{"more virt_line below line 2", ""}}} }) + }, fn.getmousepos()) + + api.nvim_buf_set_extmark( + 0, + ns, + 1, + 0, + { virt_lines = { { { 'more virt_line below line 2', '' } } } } + ) feed('G<C-E>') if multigrid then - screen:expect{grid=[[ + screen:expect { + grid = [[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 line 1 | @@ -2186,9 +1782,19 @@ describe("folded lines", function() {1:~ }| ## grid 3 | - ]], win_viewport={ - [2] = {win = {id = 1000}, topline = 0, botline = 6, curline = 4, curcol = 0, linecount = 5, sum_scroll_delta = 0}; - }} + ]], + win_viewport = { + [2] = { + win = 1000, + topline = 0, + botline = 6, + curline = 4, + curcol = 0, + linecount = 5, + sum_scroll_delta = 0, + }, + }, + } else screen:expect([[ line 1 | @@ -2204,15 +1810,10 @@ describe("folded lines", function() feed('<C-E>') if multigrid then - screen:expect{grid=[[ + screen:expect { + grid = [[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 line 2 | @@ -2220,13 +1821,22 @@ describe("folded lines", function() more virt_line below line 2 | {5:+-- 2 lines: line 3·························}| ^line 5 | - {1:~ }| - {1:~ }| + {1:~ }|*2 ## grid 3 | - ]], win_viewport={ - [2] = {win = {id = 1000}, topline = 1, botline = 6, curline = 4, curcol = 0, linecount = 5, sum_scroll_delta = 1}; - }} + ]], + win_viewport = { + [2] = { + win = 1000, + topline = 1, + botline = 6, + curline = 4, + curcol = 0, + linecount = 5, + sum_scroll_delta = 1, + }, + }, + } else screen:expect([[ line 2 | @@ -2234,312 +1844,301 @@ describe("folded lines", function() more virt_line below line 2 | {5:+-- 2 lines: line 3·························}| ^line 5 | - {1:~ }| - {1:~ }| + {1:~ }|*2 | ]]) end feed('<C-E>') if multigrid then - screen:expect{grid=[[ + screen:expect { + grid = [[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 virt_line below line 2 | more virt_line below line 2 | {5:+-- 2 lines: line 3·························}| ^line 5 | - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*3 ## grid 3 | - ]], win_viewport={ - [2] = {win = {id = 1000}, topline = 2, botline = 6, curline = 4, curcol = 0, linecount = 5, sum_scroll_delta = 2}; - }} + ]], + win_viewport = { + [2] = { + win = 1000, + topline = 2, + botline = 6, + curline = 4, + curcol = 0, + linecount = 5, + sum_scroll_delta = 2, + }, + }, + } else screen:expect([[ virt_line below line 2 | more virt_line below line 2 | {5:+-- 2 lines: line 3·························}| ^line 5 | - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*3 | ]]) end feed('<C-E>') if multigrid then - screen:expect{grid=[[ + screen:expect { + grid = [[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 more virt_line below line 2 | {5:+-- 2 lines: line 3·························}| ^line 5 | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*4 ## grid 3 | - ]], win_viewport={ - [2] = {win = {id = 1000}, topline = 2, botline = 6, curline = 4, curcol = 0, linecount = 5, sum_scroll_delta = 3}; - }} + ]], + win_viewport = { + [2] = { + win = 1000, + topline = 2, + botline = 6, + curline = 4, + curcol = 0, + linecount = 5, + sum_scroll_delta = 3, + }, + }, + } else screen:expect([[ more virt_line below line 2 | {5:+-- 2 lines: line 3·························}| ^line 5 | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*4 | ]]) end feed('<C-E>') if multigrid then - screen:expect{grid=[[ + screen:expect { + grid = [[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {5:+-- 2 lines: line 3·························}| ^line 5 | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*5 ## grid 3 | - ]], win_viewport={ - [2] = {win = {id = 1000}, topline = 2, botline = 6, curline = 4, curcol = 0, linecount = 5, sum_scroll_delta = 4}; - }} + ]], + win_viewport = { + [2] = { + win = 1000, + topline = 2, + botline = 6, + curline = 4, + curcol = 0, + linecount = 5, + sum_scroll_delta = 4, + }, + }, + } else screen:expect([[ {5:+-- 2 lines: line 3·························}| ^line 5 | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*5 | ]]) end feed('<C-E>') if multigrid then - screen:expect{grid=[[ + screen:expect { + grid = [[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 ^line 5 | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*6 ## grid 3 | - ]], win_viewport={ - [2] = {win = {id = 1000}, topline = 4, botline = 6, curline = 4, curcol = 0, linecount = 5, sum_scroll_delta = 5}; - }} + ]], + win_viewport = { + [2] = { + win = 1000, + topline = 4, + botline = 6, + curline = 4, + curcol = 0, + linecount = 5, + sum_scroll_delta = 5, + }, + }, + } else screen:expect([[ ^line 5 | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*6 | ]]) end feed('3<C-Y>') if multigrid then - screen:expect{grid=[[ + screen:expect { + grid = [[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 virt_line below line 2 | more virt_line below line 2 | {5:+-- 2 lines: line 3·························}| ^line 5 | - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*3 ## grid 3 | - ]], win_viewport={ - [2] = {win = {id = 1000}, topline = 2, botline = 6, curline = 4, curcol = 0, linecount = 5, sum_scroll_delta = 2}; - }} + ]], + win_viewport = { + [2] = { + win = 1000, + topline = 2, + botline = 6, + curline = 4, + curcol = 0, + linecount = 5, + sum_scroll_delta = 2, + }, + }, + } else screen:expect([[ virt_line below line 2 | more virt_line below line 2 | {5:+-- 2 lines: line 3·························}| ^line 5 | - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*3 | ]]) end - meths.input_mouse('left', 'press', '3', multigrid and 2 or 0, 3, 0) + api.nvim_input_mouse('left', 'press', '3', multigrid and 2 or 0, 3, 0) if multigrid then - screen:expect{grid=[[ + screen:expect { + grid = [[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 virt_line below line 2 | more virt_line below line 2 | {5:+-- 2 lines: line 3·························}| ^l{16:ine 5} | - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*3 ## grid 3 {11:-- VISUAL LINE --} | - ]], win_viewport={ - [2] = {win = {id = 1000}, topline = 2, botline = 6, curline = 4, curcol = 0, linecount = 5, sum_scroll_delta = 2}; - }} + ]], + win_viewport = { + [2] = { + win = 1000, + topline = 2, + botline = 6, + curline = 4, + curcol = 0, + linecount = 5, + sum_scroll_delta = 2, + }, + }, + } else screen:expect([[ virt_line below line 2 | more virt_line below line 2 | {5:+-- 2 lines: line 3·························}| ^l{16:ine 5} | - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*3 {11:-- VISUAL LINE --} | ]]) end - meths.input_mouse('left', 'drag', '3', multigrid and 2 or 0, 7, 0) + api.nvim_input_mouse('left', 'drag', '3', multigrid and 2 or 0, 7, 0) if multigrid then - screen:expect{grid=[[ + screen:expect { + grid = [[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 more virt_line below line 2 | {5:+-- 2 lines: line 3·························}| ^l{16:ine 5} | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*4 ## grid 3 {11:-- VISUAL LINE --} | - ]], win_viewport={ - [2] = {win = {id = 1000}, topline = 2, botline = 6, curline = 4, curcol = 0, linecount = 5, sum_scroll_delta = 3}; - }} + ]], + win_viewport = { + [2] = { + win = 1000, + topline = 2, + botline = 6, + curline = 4, + curcol = 0, + linecount = 5, + sum_scroll_delta = 3, + }, + }, + } else screen:expect([[ more virt_line below line 2 | {5:+-- 2 lines: line 3·························}| ^l{16:ine 5} | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*4 {11:-- VISUAL LINE --} | ]]) end - meths.input_mouse('left', 'drag', '3', multigrid and 2 or 0, 7, 5) + api.nvim_input_mouse('left', 'drag', '3', multigrid and 2 or 0, 7, 5) if multigrid then - screen:expect{grid=[[ + screen:expect { + grid = [[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {5:+-- 2 lines: line 3·························}| {16:line }^5 | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*5 ## grid 3 {11:-- VISUAL LINE --} | - ]], win_viewport={ - [2] = {win = {id = 1000}, topline = 2, botline = 6, curline = 4, curcol = 5, linecount = 5, sum_scroll_delta = 4}; - }} + ]], + win_viewport = { + [2] = { + win = 1000, + topline = 2, + botline = 6, + curline = 4, + curcol = 5, + linecount = 5, + sum_scroll_delta = 4, + }, + }, + } else screen:expect([[ {5:+-- 2 lines: line 3·························}| {16:line }^5 | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*5 {11:-- VISUAL LINE --} | ]]) end @@ -2547,12 +2146,10 @@ describe("folded lines", function() feed('<Esc>gg') command('botright 1split | wincmd w') if multigrid then - screen:expect{grid=[[ + screen:expect { + grid = [[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*4 {3:[No Name] [+] }| [4:---------------------------------------------]| {2:[No Name] [+] }| @@ -2566,10 +2163,28 @@ describe("folded lines", function() | ## grid 4 line 1 | - ]], win_viewport={ - [2] = {win = {id = 1000}, topline = 0, botline = 3, curline = 0, curcol = 0, linecount = 5, sum_scroll_delta = 0}; - [4] = {win = {id = 1001}, topline = 0, botline = 2, curline = 0, curcol = 0, linecount = 5, sum_scroll_delta = 0}; - }} + ]], + win_viewport = { + [2] = { + win = 1000, + topline = 0, + botline = 3, + curline = 0, + curcol = 0, + linecount = 5, + sum_scroll_delta = 0, + }, + [4] = { + win = 1001, + topline = 0, + botline = 2, + curline = 0, + curcol = 0, + linecount = 5, + sum_scroll_delta = 0, + }, + }, + } else screen:expect([[ ^line 1 | @@ -2585,12 +2200,10 @@ describe("folded lines", function() feed('<C-Y>') if multigrid then - screen:expect{grid=[[ + screen:expect { + grid = [[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*4 {3:[No Name] [+] }| [4:---------------------------------------------]| {2:[No Name] [+] }| @@ -2604,10 +2217,28 @@ describe("folded lines", function() | ## grid 4 line 1 | - ]], win_viewport={ - [2] = {win = {id = 1000}, topline = 0, botline = 3, curline = 0, curcol = 0, linecount = 5, sum_scroll_delta = -1}; - [4] = {win = {id = 1001}, topline = 0, botline = 2, curline = 0, curcol = 0, linecount = 5, sum_scroll_delta = 0}; - }} + ]], + win_viewport = { + [2] = { + win = 1000, + topline = 0, + botline = 3, + curline = 0, + curcol = 0, + linecount = 5, + sum_scroll_delta = -1, + }, + [4] = { + win = 1001, + topline = 0, + botline = 2, + curline = 0, + curcol = 0, + linecount = 5, + sum_scroll_delta = 0, + }, + }, + } else screen:expect([[ virt_line above line 1 | @@ -2623,7 +2254,7 @@ describe("folded lines", function() end) it('Folded and Visual highlights are combined #19691', function() - command('hi! Visual guibg=Red') + command('hi! Visual guifg=NONE guibg=Red') insert([[ " foofoofoofoofoofoo " 口 {{{1 @@ -2640,13 +2271,7 @@ describe("folded lines", function() if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {14:" foofoofoofoofo}ofoo | @@ -2654,8 +2279,7 @@ describe("folded lines", function() {14:" barbarbarbarba}rbar | {15:+-- 3 lines: " }{5:口···························}| {14:" bazbazbazbazb}^azbaz | - {1:~ }| - {1:~ }| + {1:~ }|*2 ## grid 3 {11:-- VISUAL BLOCK --} | ]]) @@ -2666,8 +2290,7 @@ describe("folded lines", function() {14:" barbarbarbarba}rbar | {15:+-- 3 lines: " }{5:口···························}| {14:" bazbazbazbazb}^azbaz | - {1:~ }| - {1:~ }| + {1:~ }|*2 {11:-- VISUAL BLOCK --} | ]]) end @@ -2676,13 +2299,7 @@ describe("folded lines", function() if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {14:" foofoofoofoofoo}foo | @@ -2690,8 +2307,7 @@ describe("folded lines", function() {14:" barbarbarbarbar}bar | {15:+-- 3 lines: " 口}{5:···························}| {14:" bazbazbazbazba}^zbaz | - {1:~ }| - {1:~ }| + {1:~ }|*2 ## grid 3 {11:-- VISUAL BLOCK --} | ]]) @@ -2702,8 +2318,7 @@ describe("folded lines", function() {14:" barbarbarbarbar}bar | {15:+-- 3 lines: " 口}{5:···························}| {14:" bazbazbazbazba}^zbaz | - {1:~ }| - {1:~ }| + {1:~ }|*2 {11:-- VISUAL BLOCK --} | ]]) end @@ -2712,13 +2327,7 @@ describe("folded lines", function() if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {14:" foofoofoofoofoof}oo | @@ -2726,8 +2335,7 @@ describe("folded lines", function() {14:" barbarbarbarbarb}ar | {15:+-- 3 lines: " 口}{5:···························}| {14:" bazbazbazbazbaz}^baz | - {1:~ }| - {1:~ }| + {1:~ }|*2 ## grid 3 {11:-- VISUAL BLOCK --} | ]]) @@ -2738,8 +2346,7 @@ describe("folded lines", function() {14:" barbarbarbarbarb}ar | {15:+-- 3 lines: " 口}{5:···························}| {14:" bazbazbazbazbaz}^baz | - {1:~ }| - {1:~ }| + {1:~ }|*2 {11:-- VISUAL BLOCK --} | ]]) end @@ -2748,13 +2355,7 @@ describe("folded lines", function() if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {14:" foofoofoofoofoofoo} | @@ -2762,8 +2363,7 @@ describe("folded lines", function() {14:" barbarbarbarbarbar} | {15:+-- 3 lines: " 口··}{5:·························}| {14:" bazbazbazbazbazba}^z | - {1:~ }| - {1:~ }| + {1:~ }|*2 ## grid 3 {11:-- VISUAL BLOCK --} | ]]) @@ -2774,8 +2374,7 @@ describe("folded lines", function() {14:" barbarbarbarbarbar} | {15:+-- 3 lines: " 口··}{5:·························}| {14:" bazbazbazbazbazba}^z | - {1:~ }| - {1:~ }| + {1:~ }|*2 {11:-- VISUAL BLOCK --} | ]]) end @@ -2784,13 +2383,7 @@ describe("folded lines", function() if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 " foofoofoofoofo{14:ofoo} | @@ -2798,8 +2391,7 @@ describe("folded lines", function() " barbarbarbarba{14:rbar} | {5:+-- 3 lines: " }{15:口··}{5:·························}| " bazbazbazbazba^z{14:baz} | - {1:~ }| - {1:~ }| + {1:~ }|*2 ## grid 3 {11:-- VISUAL BLOCK --} | ]]) @@ -2810,8 +2402,7 @@ describe("folded lines", function() " barbarbarbarba{14:rbar} | {5:+-- 3 lines: " }{15:口··}{5:·························}| " bazbazbazbazba^z{14:baz} | - {1:~ }| - {1:~ }| + {1:~ }|*2 {11:-- VISUAL BLOCK --} | ]]) end @@ -2820,13 +2411,7 @@ describe("folded lines", function() if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 " foofoofoofoofoo{14:foo} | @@ -2834,8 +2419,7 @@ describe("folded lines", function() " barbarbarbarbar{14:bar} | {5:+-- 3 lines: " }{15:口··}{5:·························}| " bazbazbazbazbaz^b{14:az} | - {1:~ }| - {1:~ }| + {1:~ }|*2 ## grid 3 {11:-- VISUAL BLOCK --} | ]]) @@ -2846,8 +2430,7 @@ describe("folded lines", function() " barbarbarbarbar{14:bar} | {5:+-- 3 lines: " }{15:口··}{5:·························}| " bazbazbazbazbaz^b{14:az} | - {1:~ }| - {1:~ }| + {1:~ }|*2 {11:-- VISUAL BLOCK --} | ]]) end @@ -2864,22 +2447,13 @@ describe("folded lines", function() if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {2:line} 1 | {5:+-- 2 lines: line 2·························}| {6:line} 4 | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*4 ## grid 3 /line^ | ]]) @@ -2888,34 +2462,22 @@ describe("folded lines", function() {2:line} 1 | {5:+-- 2 lines: line 2·························}| {6:line} 4 | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*4 /line^ | ]]) end feed('<Esc>') - funcs.matchadd('Search', 'line') + fn.matchadd('Search', 'line') if multigrid then screen:expect([[ ## grid 1 - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| - [2:---------------------------------------------]| + [2:---------------------------------------------]|*7 [3:---------------------------------------------]| ## grid 2 {6:line} 1 | {5:+-- 2 lines: line 2·························}| {6:line} ^4 | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*4 ## grid 3 | ]]) @@ -2924,28 +2486,29 @@ describe("folded lines", function() {6:line} 1 | {5:+-- 2 lines: line 2·························}| {6:line} ^4 | - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*4 | ]]) end end) - it('support foldtext with virtual text format', function() + it('foldtext with virtual text format', function() screen:try_resize(30, 7) insert(content1) - command("hi! CursorLine guibg=NONE guifg=Red gui=NONE") + command('hi! CursorLine guibg=NONE guifg=Red gui=NONE') command('hi F0 guibg=Red guifg=Black') command('hi F1 guifg=White') - meths.set_option_value('cursorline', true, {}) - meths.set_option_value('foldcolumn', '4', {}) - meths.set_option_value('foldtext', '[' - .. '["▶", ["F0", "F1"]], ' - .. '[v:folddashes], ' - .. '["\t", "Search"], ' - .. '[getline(v:foldstart), "NonText"]]', {}) + api.nvim_set_option_value('cursorline', true, {}) + api.nvim_set_option_value('foldcolumn', '4', {}) + api.nvim_set_option_value( + 'foldtext', + '[' + .. '["▶", ["F0", "F1"]], ' + .. '[v:folddashes], ' + .. '["\t", "Search"], ' + .. '[getline(v:foldstart), "NonText"]]', + {} + ) command('3,4fold') command('5,6fold') @@ -2953,20 +2516,12 @@ describe("folded lines", function() if multigrid then screen:expect([[ ## grid 1 - [2:------------------------------]| - [2:------------------------------]| - [2:------------------------------]| - [2:------------------------------]| - [2:------------------------------]| - [2:------------------------------]| + [2:------------------------------]|*6 [3:------------------------------]| ## grid 2 {7: }This is a | {7:+ }{4:^▶}{13:-}{17: }{18:valid English}{13:·····}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*4 ## grid 3 | ]]) @@ -2974,33 +2529,24 @@ describe("folded lines", function() screen:expect([[ {7: }This is a | {7:+ }{4:^▶}{13:-}{17: }{18:valid English}{13:·····}| - {1:~ }| - {1:~ }| - {1:~ }| - {1:~ }| + {1:~ }|*4 | ]]) end - eq('▶-\tvalid English', funcs.foldtextresult(2)) + eq('▶-\tvalid English', fn.foldtextresult(2)) feed('zo') if multigrid then screen:expect([[ ## grid 1 - [2:------------------------------]| - [2:------------------------------]| - [2:------------------------------]| - [2:------------------------------]| - [2:------------------------------]| - [2:------------------------------]| + [2:------------------------------]|*6 [3:------------------------------]| ## grid 2 {7: }This is a | {7:- }valid English | {7:│+ }{4:▶}{5:--}{19: }{18:sentence composed }| {7:│+ }{4:^▶}{13:--}{17: }{18:in his cave.}{13:······}| - {1:~ }| - {1:~ }| + {1:~ }|*2 ## grid 3 | ]]) @@ -3010,33 +2556,26 @@ describe("folded lines", function() {7:- }valid English | {7:│+ }{4:▶}{5:--}{19: }{18:sentence composed }| {7:│+ }{4:^▶}{13:--}{17: }{18:in his cave.}{13:······}| - {1:~ }| - {1:~ }| + {1:~ }|*2 | ]]) end - eq('▶--\tsentence composed by', funcs.foldtextresult(3)) - eq('▶--\tin his cave.', funcs.foldtextresult(5)) + eq('▶--\tsentence composed by', fn.foldtextresult(3)) + eq('▶--\tin his cave.', fn.foldtextresult(5)) - command('hi! Visual guibg=Red') + command('hi! Visual guifg=NONE guibg=Red') feed('V2k') if multigrid then screen:expect([[ ## grid 1 - [2:------------------------------]| - [2:------------------------------]| - [2:------------------------------]| - [2:------------------------------]| - [2:------------------------------]| - [2:------------------------------]| + [2:------------------------------]|*6 [3:------------------------------]| ## grid 2 {7: }This is a | {7:- }^v{14:alid English} | {7:│+ }{4:▶}{15:--}{19: }{20:sentence composed }| {7:│+ }{4:▶}{15:--}{19: }{20:in his cave.}{15:······}| - {1:~ }| - {1:~ }| + {1:~ }|*2 ## grid 3 {11:-- VISUAL LINE --} | ]]) @@ -3046,30 +2585,23 @@ describe("folded lines", function() {7:- }^v{14:alid English} | {7:│+ }{4:▶}{15:--}{19: }{20:sentence composed }| {7:│+ }{4:▶}{15:--}{19: }{20:in his cave.}{15:······}| - {1:~ }| - {1:~ }| + {1:~ }|*2 {11:-- VISUAL LINE --} | ]]) end - meths.set_option_value('rightleft', true, {}) + api.nvim_set_option_value('rightleft', true, {}) if multigrid then screen:expect([[ ## grid 1 - [2:------------------------------]| - [2:------------------------------]| - [2:------------------------------]| - [2:------------------------------]| - [2:------------------------------]| - [2:------------------------------]| + [2:------------------------------]|*6 [3:------------------------------]| ## grid 2 a si sihT{7: }| {14:hsilgnE dila}^v{7: -}| {20: desopmoc ecnetnes}{19: }{15:--}{4:▶}{7: +│}| {15:······}{20:.evac sih ni}{19: }{15:--}{4:▶}{7: +│}| - {1: ~}| - {1: ~}| + {1: ~}|*2 ## grid 3 {11:-- VISUAL LINE --} | ]]) @@ -3079,15 +2611,128 @@ describe("folded lines", function() {14:hsilgnE dila}^v{7: -}| {20: desopmoc ecnetnes}{19: }{15:--}{4:▶}{7: +│}| {15:······}{20:.evac sih ni}{19: }{15:--}{4:▶}{7: +│}| - {1: ~}| - {1: ~}| + {1: ~}|*2 + {11:-- VISUAL LINE --} | + ]]) + end + end) + + it('transparent foldtext', function() + screen:try_resize(30, 7) + insert(content1) + command('hi! CursorLine guibg=NONE guifg=Red gui=NONE') + command('hi F0 guibg=Red guifg=Black') + command('hi F1 guifg=White') + api.nvim_set_option_value('cursorline', true, {}) + api.nvim_set_option_value('foldcolumn', '4', {}) + api.nvim_set_option_value('foldtext', '', {}) + + command('3,4fold') + command('5,6fold') + command('2,6fold') + if multigrid then + screen:expect([[ + ## grid 1 + [2:------------------------------]|*6 + [3:------------------------------]| + ## grid 2 + {7: }This is a | + {7:+ }{13:^valid English·············}| + {1:~ }|*4 + ## grid 3 + | + ]]) + else + screen:expect([[ + {7: }This is a | + {7:+ }{13:^valid English·············}| + {1:~ }|*4 + | + ]]) + end + + feed('zo') + if multigrid then + screen:expect([[ + ## grid 1 + [2:------------------------------]|*6 + [3:------------------------------]| + ## grid 2 + {7: }This is a | + {7:- }valid English | + {7:│+ }{5:sentence composed by······}| + {7:│+ }{13:^in his cave.··············}| + {1:~ }|*2 + ## grid 3 + | + ]]) + else + screen:expect([[ + {7: }This is a | + {7:- }valid English | + {7:│+ }{5:sentence composed by······}| + {7:│+ }{13:^in his cave.··············}| + {1:~ }|*2 + | + ]]) + end + + command('hi! Visual guifg=NONE guibg=Red') + feed('V2k') + if multigrid then + screen:expect([[ + ## grid 1 + [2:------------------------------]|*6 + [3:------------------------------]| + ## grid 2 + {7: }This is a | + {7:- }^v{14:alid English} | + {7:│+ }{15:sentence composed by······}| + {7:│+ }{15:in his cave.··············}| + {1:~ }|*2 + ## grid 3 + {11:-- VISUAL LINE --} | + ]]) + else + screen:expect([[ + {7: }This is a | + {7:- }^v{14:alid English} | + {7:│+ }{15:sentence composed by······}| + {7:│+ }{15:in his cave.··············}| + {1:~ }|*2 + {11:-- VISUAL LINE --} | + ]]) + end + + api.nvim_set_option_value('rightleft', true, {}) + if multigrid then + screen:expect([[ + ## grid 1 + [2:------------------------------]|*6 + [3:------------------------------]| + ## grid 2 + a si sihT{7: }| + {14:hsilgnE dila}^v{7: -}| + {15:······yb desopmoc ecnetnes}{7: +│}| + {15:··············.evac sih ni}{7: +│}| + {1: ~}|*2 + ## grid 3 + {11:-- VISUAL LINE --} | + ]]) + else + screen:expect([[ + a si sihT{7: }| + {14:hsilgnE dila}^v{7: -}| + {15:······yb desopmoc ecnetnes}{7: +│}| + {15:··············.evac sih ni}{7: +│}| + {1: ~}|*2 {11:-- VISUAL LINE --} | ]]) end end) end - describe("with ext_multigrid", function() + describe('with ext_multigrid', function() with_ext_multigrid(true) end) |