Files
AstroVim_Config/.config/nvim/lua/plugins/smooth-cursor.lua
2024-11-29 11:44:20 +07:00

76 lines
3.6 KiB
Lua

return {
"gen740/SmoothCursor.nvim",
config = function()
require("smoothcursor").setup {
type = "default", -- Cursor movement calculation method, choose "default", "exp" (exponential) or "matrix".
cursor = "", -- Cursor shape (requires Nerd Font). Disabled in fancy mode.
texthl = "SmoothCursor", -- Highlight group. Default is { bg = nil, fg = "#FFD400" }. Disabled in fancy mode.
linehl = nil, -- Highlights the line under the cursor, similar to 'cursorline'. "CursorLine" is recommended. Disabled in fancy mode.
fancy = {
enable = true, -- enable fancy mode
head = { cursor = "", texthl = "SmoothCursor", linehl = nil }, -- false to disable fancy head
body = {
{ cursor = "󰝥", texthl = "SmoothCursorRed" },
{ cursor = "󰝥", texthl = "SmoothCursorOrange" },
{ cursor = "", texthl = "SmoothCursorYellow" },
{ cursor = "", texthl = "SmoothCursorGreen" },
{ cursor = "", texthl = "SmoothCursorAqua" },
{ cursor = ".", texthl = "SmoothCursorBlue" },
{ cursor = ".", texthl = "SmoothCursorPurple" },
},
tail = { cursor = nil, texthl = "SmoothCursor" }, -- false to disable fancy tail
},
matrix = { -- Loaded when 'type' is set to "matrix"
head = {
-- Picks a random character from this list for the cursor text
cursor = require "smoothcursor.matrix_chars",
-- Picks a random highlight from this list for the cursor text
texthl = {
"SmoothCursor",
},
linehl = nil, -- No line highlight for the head
},
body = {
length = 6, -- Specifies the length of the cursor body
-- Picks a random character from this list for the cursor body text
cursor = require "smoothcursor.matrix_chars",
-- Picks a random highlight from this list for each segment of the cursor body
texthl = {
"SmoothCursorGreen",
},
},
tail = {
-- Picks a random character from this list for the cursor tail (if any)
cursor = nil,
-- Picks a random highlight from this list for the cursor tail
texthl = {
"SmoothCursor",
},
},
unstop = false, -- Determines if the cursor should stop or not (false means it will stop)
},
autostart = true, -- Automatically start SmoothCursor
always_redraw = true, -- Redraw the screen on each update
flyin_effect = nil, -- Choose "bottom" or "top" for flying effect
speed = 25, -- Max speed is 100 to stick with your current position
intervals = 35, -- Update intervals in milliseconds
priority = 10, -- Set marker priority
timeout = 3000, -- Timeout for animations in milliseconds
threshold = 3, -- Animate only if cursor moves more than this many lines
max_threshold = nil, -- If you move more than this many lines, don't animate (if `nil`, deactivate check)
disable_float_win = false, -- Disable in floating windows
enabled_filetypes = nil, -- Enable only for specific file types, e.g., { "lua", "vim" }
disabled_filetypes = nil, -- Disable for these file types, ignored if enabled_filetypes is set. e.g., { "TelescopePrompt", "NvimTree" }
-- Show the position of the latest input mode positions.
-- A value of "enter" means the position will be updated when entering the mode.
-- A value of "leave" means the position will be updated when leaving the mode.
-- `nil` = disabled
show_last_positions = nil,
}
end,
}