diff options
author | takase1121 <20792268+takase1121@users.noreply.github.com> | 2021-10-27 13:38:10 +0800 |
---|---|---|
committer | takase1121 <20792268+takase1121@users.noreply.github.com> | 2021-10-27 13:38:10 +0800 |
commit | a6e752d1eba6217d8a2f4cac3d170db39e37d713 (patch) | |
tree | 87ed200c859fa038aa972adbd443ff451597b8d8 /plugins/smoothcaret.lua | |
parent | 911d14ed38a5f96ec2175d4adbc1f8290fd61a32 (diff) | |
download | lite-xl-plugins-a6e752d1eba6217d8a2f4cac3d170db39e37d713.tar.gz lite-xl-plugins-a6e752d1eba6217d8a2f4cac3d170db39e37d713.zip |
add smoothcaret.lua
Diffstat (limited to 'plugins/smoothcaret.lua')
-rw-r--r-- | plugins/smoothcaret.lua | 26 |
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 |