aboutsummaryrefslogtreecommitdiff
path: root/plugins/smoothcaret.lua
diff options
context:
space:
mode:
authortakase1121 <20792268+takase1121@users.noreply.github.com>2021-10-27 13:38:10 +0800
committertakase1121 <20792268+takase1121@users.noreply.github.com>2021-10-27 13:38:10 +0800
commita6e752d1eba6217d8a2f4cac3d170db39e37d713 (patch)
tree87ed200c859fa038aa972adbd443ff451597b8d8 /plugins/smoothcaret.lua
parent911d14ed38a5f96ec2175d4adbc1f8290fd61a32 (diff)
downloadlite-xl-plugins-a6e752d1eba6217d8a2f4cac3d170db39e37d713.tar.gz
lite-xl-plugins-a6e752d1eba6217d8a2f4cac3d170db39e37d713.zip
add smoothcaret.lua
Diffstat (limited to 'plugins/smoothcaret.lua')
-rw-r--r--plugins/smoothcaret.lua26
1 files changed, 26 insertions, 0 deletions
diff --git a/plugins/smoothcaret.lua b/plugins/smoothcaret.lua
new file mode 100644
index 0000000..26f7d98
--- /dev/null
+++ b/plugins/smoothcaret.lua
@@ -0,0 +1,26 @@
+-- mod-version:2 -- lite-xl 2.0
+local config = require "core.config"
+local style = require "core.style"
+local DocView = require "core.docview"
+
+config.plugins.smoothcaret = { rate = 0.65 }
+
+local docview_update = DocView.update
+function DocView:update()
+ docview_update(self)
+
+ if not self.caret then
+ self.caret = { current = { x = 0, y = 0 }, target = { x = 0, y = 0 } }
+ end
+ local c = self.caret
+ self:move_towards(c.current, "x", c.target.x, config.plugins.smoothcaret.rate)
+ self:move_towards(c.current, "y", c.target.y, config.plugins.smoothcaret.rate)
+end
+
+function DocView:draw_caret(x, y)
+ local c = self.caret
+ local lh = self:get_line_height()
+ c.target.x = x
+ c.target.y = y
+ renderer.draw_rect(c.current.x, c.current.y, style.caret_width, lh, style.caret)
+end