aboutsummaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authormax397574 <[email protected]>2021-10-20 20:16:01 +0200
committermax397574 <[email protected]>2021-10-20 20:16:01 +0200
commitd568672b40d05dbe515cb74459986bdf5d48e086 (patch)
tree9fd1dab17dbe444826f09c1f2704be6ac6953cb1 /lua
parent1bf7b42be3e3d639b8f3c4a0c2231af267b00d5f (diff)
feat(utils): ✨added function to position cursor
Diffstat (limited to 'lua')
-rw-r--r--lua/startup/utils.lua66
1 files changed, 66 insertions, 0 deletions
diff --git a/lua/startup/utils.lua b/lua/startup/utils.lua
index d62c413..0734a38 100644
--- a/lua/startup/utils.lua
+++ b/lua/startup/utils.lua
@@ -6,6 +6,8 @@ local colors = {
tools_fg = "#009900",
}
+U.cursor_pos = vim.api.nvim_win_get_cursor(0)
+
function U.spaces(amount)
return string.rep(" ", amount)
end
@@ -54,6 +56,70 @@ function U.get_oldfiles_directory(amount)
return oldfiles
end
+-- BUG: check if cursor could get out of bounds
+function U.reposition_cursor()
+ if vim.o.filetype ~= "startup" then
+ return
+ end
+ local column = math.floor(vim.o.columns / 2)
+ print "U.cursor_pos:"
+ dump(U.cursor_pos)
+ local new_cursor_pos = vim.api.nvim_win_get_cursor(0)
+ if
+ vim.trim(vim.api.nvim_get_current_line()) ~= ""
+ and new_cursor_pos[2] == column
+ then
+ print "returned"
+ return
+ elseif
+ vim.trim(vim.api.nvim_get_current_line()) ~= ""
+ and new_cursor_pos[2] > column
+ and new_cursor_pos[1] == U.cursor_pos[1]
+ then
+ 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
+ vim.api.nvim_win_set_cursor(0, { new_cursor_pos[1] + i, column })
+ i = i + 1
+ end
+ elseif
+ vim.trim(vim.api.nvim_get_current_line()) ~= ""
+ and new_cursor_pos[2] < column
+ and new_cursor_pos[1] == U.cursor_pos[1]
+ then
+ 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
+ vim.api.nvim_win_set_cursor(0, { new_cursor_pos[1] - i, column })
+ i = i + 1
+ end
+ elseif
+ vim.trim(vim.api.nvim_get_current_line()) == ""
+ and new_cursor_pos[1] < U.cursor_pos[1]
+ then
+ 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
+ vim.api.nvim_win_set_cursor(0, { new_cursor_pos[1] - i, column })
+ i = i + 1
+ end
+ elseif
+ vim.trim(vim.api.nvim_get_current_line()) == ""
+ and new_cursor_pos[1] > U.cursor_pos[1]
+ then
+ 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
+ vim.api.nvim_win_set_cursor(0, { new_cursor_pos[1] + i, column })
+ i = i + 1
+ end
+ end
+
+ U.cursor_pos = vim.api.nvim_win_get_cursor(0)
+ print "new_cursor_pos:"
+ dump(new_cursor_pos)
+end
+
function U.longest_line(lines)
local longest = 0
for _, line in ipairs(lines) do