Permalink
Browse files

API: nvim_win_set_cursor: set curswant #8613

Fixes #8591
  • Loading branch information...
dimbleby authored and justinmk committed Jun 25, 2018
1 parent e475476 commit 1cbc8301897c09d381074397b82450f81d7854be
Showing with 26 additions and 0 deletions.
  1. +3 −0 src/nvim/api/window.c
  2. +23 −0 test/functional/api/window_spec.lua
@@ -93,6 +93,9 @@ void nvim_win_set_cursor(Window window, ArrayOf(Integer, 2) pos, Error *err)
// When column is out of range silently correct it.
check_cursor_col_win(win);
// Make sure we stick in this column.
win->w_curswant = (colnr_T)col;
// make sure cursor is in visible range even if win != curwin
update_topline_win(win);
@@ -108,6 +108,29 @@ describe('api/win', function()
neq(win, curwin())
end)
it('remembers what column it wants to be in', function()
insert("first line")
feed('o<esc>')
insert("second line")
feed('gg')
wait() -- let nvim process the 'gg' command
-- cursor position is at beginning
local win = curwin()
eq({1, 0}, window('get_cursor', win))
-- move cursor to column 5
window('set_cursor', win, {1, 5})
-- move down a line
feed('j')
wait() -- let nvim process the 'j' command
-- cursor is still in column 5
eq({2, 5}, window('get_cursor', win))
end)
end)
describe('{get,set}_height', function()

0 comments on commit 1cbc830

Please sign in to comment.