import { getcurpos } from "https://deno.land/x/denops_std@v4.1.4/function/cursor.ts";
Get the position of the cursor. This is like getpos('.'), but includes an extra "curswant" item in the list: [0, lnum, col, off, curswant] ~ The "curswant" number is the preferred column when moving the cursor vertically. After |$| command it will be a very large number equal to |v:maxcol|. Also see |getcursorcharpos()| and |getpos()|. The first "bufnum" item is always zero. The byte position of the cursor is returned in 'col'. To get the character position, use |getcursorcharpos()|.
The optional {winid} argument can specify the window. It can be the window number or the |window-ID|. The last known cursor position is returned, this may be invalid for the current value of the buffer if it is not the current window. If {winid} is invalid a list with zeroes is returned.
This can be used to save and restore the cursor position: let save_cursor = getcurpos() MoveTheCursorAround call setpos('.', save_cursor) Note that this only works within the window. See |winrestview()| for restoring more state.
Can also be used as a |method|: GetWinid()->getcurpos()