From 7ee41a4b33c080b9bd29eef7a9fb57715f4c97e9 Mon Sep 17 00:00:00 2001 From: "Nanashi." Date: Mon, 9 Feb 2026 21:19:50 +0900 Subject: [PATCH] test: add failing case for screenrow/screencol #37761 --- .../vimscript/screenrowcol_spec.lua | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 test/functional/vimscript/screenrowcol_spec.lua diff --git a/test/functional/vimscript/screenrowcol_spec.lua b/test/functional/vimscript/screenrowcol_spec.lua new file mode 100644 index 0000000000..ba9aea1cb0 --- /dev/null +++ b/test/functional/vimscript/screenrowcol_spec.lua @@ -0,0 +1,65 @@ +local t = require('test.testutil') +local n = require('test.functional.testnvim')() +local Screen = require('test.functional.ui.screen') + +local clear, eq, api = n.clear, t.eq, n.api +local command, fn = n.command, n.fn +local feed = n.feed + +describe('screenrow() and screencol() function', function() + local function with_ext_multigrid(multigrid) + before_each(function() + clear() + Screen.new(41, 41, { ext_multigrid = multigrid }) + end) + + pending('works in floating window', function() + local opts = { + relative = 'editor', + height = 8, + width = 12, + row = 6, + col = 8, + anchor = 'NW', + style = 'minimal', + border = 'none', + focusable = 1, + } + local float = api.nvim_open_win(api.nvim_create_buf(false, true), false, opts) + + api.nvim_set_current_win(float) + command('redraw') + + eq(7, fn.screenrow()) + eq(9, fn.screencol()) + end) + + pending('works in vertical split', function() + command('vsplit') + command('wincmd l') -- move to right split + feed('iABC') -- insert two lines + command('redraw') + + eq(2, fn.screenrow()) + eq(23, fn.screencol()) -- 20 (left) | 1 (border) | 2 (2nd col) + end) + + pending('works in horizontal split', function() + command('split') + command('wincmd j') -- move to bottom split + feed('iABC') -- insert two lines + command('redraw') + + eq(22, fn.screenrow()) -- 19 (top) | 1 (border) | 2 (2nd row) + 17 (rest) | 2 (cmd) + eq(2, fn.screencol()) + end) + end + + describe('with ext_multigrid', function() + with_ext_multigrid(true) + end) + + describe('without ext_multigrid', function() + with_ext_multigrid(false) + end) +end)