aboutsummaryrefslogtreecommitdiff
path: root/lua/startup/utils.lua
diff options
context:
space:
mode:
authormax397574 <[email protected]>2021-10-24 18:18:47 +0200
committermax397574 <[email protected]>2021-10-24 18:18:47 +0200
commitf33f55a9c27733fcce24bceca3c489789583a054 (patch)
tree58ff93be52117e0446e90b074f911fafc088d1e3 /lua/startup/utils.lua
parentfeec31acc53a29f499fecf7573d55b501548f63c (diff)
fix(utils): 🐛fix cursor positioning
Diffstat (limited to 'lua/startup/utils.lua')
-rw-r--r--lua/startup/utils.lua19
1 files changed, 18 insertions, 1 deletions
diff --git a/lua/startup/utils.lua b/lua/startup/utils.lua
index eb522b5..5bb4376 100644
--- a/lua/startup/utils.lua
+++ b/lua/startup/utils.lua
@@ -5,7 +5,7 @@ local function start_timeout()
flag = true
vim.defer_fn(function()
flag = false
- end, 50)
+ end, 150)
end
-- local colors = require("startup.config").colors
@@ -127,6 +127,7 @@ function U.reposition_cursor()
~= ""
and new_cursor_pos[2] == column
then
+ start_timeout()
return
elseif
-- moved to the right
@@ -137,6 +138,7 @@ function U.reposition_cursor()
then
if new_cursor_pos[1] == vim.api.nvim_buf_line_count(0) then
vim.api.nvim_win_set_cursor(0, { new_cursor_pos[1], column })
+ start_timeout()
return
end
local i = 1
@@ -154,8 +156,18 @@ function U.reposition_cursor()
and new_cursor_pos[1] == U.cursor_pos[1]
then
local i = 1
+ if new_cursor_pos[1] == 1 then
+ vim.api.nvim_win_set_cursor(0, { new_cursor_pos[1], column })
+ start_timeout()
+ return
+ end
vim.api.nvim_win_set_cursor(0, { new_cursor_pos[1] - i, column })
while vim.trim(vim.api.nvim_get_current_line()) == "" do
+ if new_cursor_pos[1] - i == 1 then
+ vim.api.nvim_win_set_cursor(0, { new_cursor_pos[1], column })
+ start_timeout()
+ return
+ end
vim.api.nvim_win_set_cursor(0, { new_cursor_pos[1] - i, column })
i = i + 1
end
@@ -166,6 +178,11 @@ function U.reposition_cursor()
== ""
and new_cursor_pos[1] < U.cursor_pos[1]
then
+ if new_cursor_pos[1] == 1 then
+ vim.api.nvim_win_set_cursor(0, { new_cursor_pos[1], column })
+ start_timeout()
+ return
+ end
local i = 1
vim.api.nvim_win_set_cursor(0, { new_cursor_pos[1] - i, column })
while vim.trim(vim.api.nvim_get_current_line()) == "" do