aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAriel D'Alessandro <dalessandro.ariel@gmail.com>2023-05-03 21:17:29 +0200
committerAriel D'Alessandro <dalessandro.ariel@gmail.com>2023-05-04 09:08:30 +0200
commit3b9945061ce45d856ae4cc1a905c85d3db948b6c (patch)
treec369c9d712751380cbba78ff62edc94cf7a651ea
parent6267e5222d80aa0beb3a933676d3157c27a9d03f (diff)
downloadnvim-conf-3b9945061ce45d856ae4cc1a905c85d3db948b6c.tar.gz
nvim-conf-3b9945061ce45d856ae4cc1a905c85d3db948b6c.zip
add animation
-rw-r--r--lazy-lock.json14
-rw-r--r--lua/alpha/animations.lua50
-rw-r--r--lua/plugins/animation.lua11
3 files changed, 69 insertions, 6 deletions
diff --git a/lazy-lock.json b/lazy-lock.json
index a64d7b1..7306041 100644
--- a/lazy-lock.json
+++ b/lazy-lock.json
@@ -3,7 +3,8 @@
"LuaSnip": { "branch": "master", "commit": "500981ff6cefc7343e3959ef0f939bd0bfd49ba9" },
"NeoColumn.nvim": { "branch": "main", "commit": "8df55a19842027cd524e4eda448c64c21cf49f5a" },
"SmoothCursor.nvim": { "branch": "main", "commit": "b61173fb107455f18099715b88d86002579f2736" },
- "catppuccin": { "branch": "main", "commit": "94d10b558e679447064fe72ddf764b6fea3f0c85" },
+ "animation.nvim": { "branch": "main", "commit": "fb77091ab72ec9971aee0562e7081182527aaa6a" },
+ "catppuccin": { "branch": "main", "commit": "304908d13d08bb9464d7e65d473d04777c97f6d6" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-cmdline": { "branch": "main", "commit": "5af1bb7d722ef8a96658f01d6eb219c4cf746b32" },
"cmp-dap": { "branch": "master", "commit": "d16f14a210cd28988b97ca8339d504533b7e09a4" },
@@ -29,9 +30,10 @@
"lspkind-nvim": { "branch": "master", "commit": "c68b3a003483cf382428a43035079f78474cd11e" },
"lualine.nvim": { "branch": "master", "commit": "84ffb80e452d95e2c46fa29a98ea11a240f7843e" },
"markdown-preview.nvim": { "branch": "main", "commit": "cc05a30393e2bf9f12e2d59fc35a1aa928ed1727" },
- "mason-lspconfig.nvim": { "branch": "main", "commit": "43f2ddf0b5f544d9bb20e24b8ff76b79f2a07ab0" },
+ "mason-lspconfig.nvim": { "branch": "main", "commit": "cec0e6dd534ade486b5eeb59ebcfa8d51c3e8c5e" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "a6c4d7df448a78b0a05fd2065bef11ed52bee51c" },
"mason.nvim": { "branch": "main", "commit": "057ac5ca159c83e302a55bd839a96ff1ea2396db" },
+ "middleclass": { "branch": "master", "commit": "9fab4d5bca67262614960960ca35c4740eb2be2c" },
"neogen": { "branch": "main", "commit": "9c17225aac94bdbf93baf16e1b2d2c6dcffb0901" },
"null-ls.nvim": { "branch": "main", "commit": "33b853a3933eed3137cd055aac4e539e69832ad0" },
"nvim-autopairs": { "branch": "master", "commit": "7747bbae60074acf0b9e3a4c13950be7a2dff444" },
@@ -42,12 +44,12 @@
"nvim-dap-ui": { "branch": "master", "commit": "286f682f366fbc652b38dff893569374e9433dd3" },
"nvim-dap-virtual-text": { "branch": "master", "commit": "ab988dbb7d20cdaebf9b3ef7554a89f6895de042" },
"nvim-dap-vscode-js": { "branch": "main", "commit": "03bd29672d7fab5e515fc8469b7d07cc5994bbf6" },
- "nvim-lspconfig": { "branch": "master", "commit": "5f7a8311dd6e67de74c12fa9ac2f1aa75f72b19e" },
+ "nvim-lspconfig": { "branch": "master", "commit": "05689b96fdad33fb01d4968089760d6886a65058" },
"nvim-notify": { "branch": "master", "commit": "159c6cf1be25a933f35e97499314c9faab55c98f" },
"nvim-projectconfig": { "branch": "master", "commit": "05fd34831e170db269d1b84597615bcdcdde930e" },
"nvim-spectre": { "branch": "master", "commit": "46b9883c0760db6547f152dc97a651611ba6486d" },
"nvim-transparent": { "branch": "main", "commit": "f09966923f7e329ceda9d90fe0b7e8042b6bdf31" },
- "nvim-treesitter": { "branch": "master", "commit": "b4d2640eab4b1f6373e1ded84ab9f6db0c02c756" },
+ "nvim-treesitter": { "branch": "master", "commit": "e2cf8977fda35ad666d7b431b0254d8da710968a" },
"nvim-treesitter-refactor": { "branch": "master", "commit": "65ad2eca822dfaec2a3603119ec3cc8826a7859e" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "85a6f9d1af8b731f09f4031e1f9478d4b40d13ab" },
"nvim-web-devicons": { "branch": "master", "commit": "b34362b20a4942b3245f958e73ebe1b09b020ad1" },
@@ -56,7 +58,7 @@
"plenary.nvim": { "branch": "master", "commit": "9ac3e9541bbabd9d73663d757e4fe48a675bb054" },
"popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" },
"refactoring.nvim": { "branch": "master", "commit": "47a1716a9020c0093a1c8af36c3f9434dae62bbd" },
- "smart-splits.nvim": { "branch": "master", "commit": "c9ed0ebe308bf157fe7c2f10ab6d9dbef5b2be94" },
+ "smart-splits.nvim": { "branch": "master", "commit": "cf4f6cc81d0fac9e189b5afa6bbf09ccb097b942" },
"telescope-dap.nvim": { "branch": "master", "commit": "313d2ea12ae59a1ca51b62bf01fc941a983d9c9c" },
"telescope-file-browser.nvim": { "branch": "master", "commit": "e0fcb12702ad0d2873544a31730f9aaef04fd032" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "580b6c48651cabb63455e97d7e131ed557b8c7e2" },
@@ -78,6 +80,6 @@
"vim-repeat": { "branch": "master", "commit": "24afe922e6a05891756ecf331f39a1f6743d3d5a" },
"vim-rhubarb": { "branch": "master", "commit": "ee69335de176d9325267b0fd2597a22901d927b1" },
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
- "vim-test": { "branch": "master", "commit": "5af7aa2a07c70f730b03c893821366961b108cf2" },
+ "vim-test": { "branch": "master", "commit": "c19be85a9b3d8b86f37533bfeb82cbe189cd895e" },
"vimwiki": { "branch": "dev", "commit": "7a48268d24614e74f8187856ade54cf03134e9d9" }
} \ No newline at end of file
diff --git a/lua/alpha/animations.lua b/lua/alpha/animations.lua
new file mode 100644
index 0000000..c0b7a6c
--- /dev/null
+++ b/lua/alpha/animations.lua
@@ -0,0 +1,50 @@
+local redraw_buffer = function()
+ local Animation = require "animation"
+ local fps = 45 -- frames per second
+ local easing = require "animation.easing"
+
+ local buffer = 0
+ local len = 0
+ local place_holder = {}
+
+ local lines = vim.api.nvim_buf_get_lines(buffer, 0, -1, true)
+
+ for _, line in ipairs(lines) do
+ len = len + string.len(line)
+ table.insert(place_holder, "")
+ end
+
+ vim.api.nvim_buf_set_lines(buffer, 0, #lines, true, place_holder)
+
+ local duration = math.ceil(len / fps * 1000)
+
+ local i = 1
+ local line_nr = 1
+ local insertLine = ""
+
+ local function callback()
+ if lines[line_nr] == nil then
+ return true
+ end
+ local char = string.sub(lines[line_nr], i, i)
+ if char == nil then
+ return true
+ end
+ insertLine = insertLine .. char
+ i = i + 1
+ vim.api.nvim_buf_set_lines(buffer, line_nr - 1, line_nr, true, { insertLine })
+
+ if insertLine == lines[line_nr] then
+ i = 1
+ line_nr = line_nr + 1
+ insertLine = ""
+ end
+ end
+
+ local animation = Animation(duration, fps, easing.line, callback)
+ animation:run()
+end
+
+return {
+ redraw_buffer = redraw_buffer,
+}
diff --git a/lua/plugins/animation.lua b/lua/plugins/animation.lua
new file mode 100644
index 0000000..26cf364
--- /dev/null
+++ b/lua/plugins/animation.lua
@@ -0,0 +1,11 @@
+return {
+ "anuvyklack/animation.nvim",
+ dependencies = {
+ "anuvyklack/middleclass",
+ },
+ keys = {
+ {"<leader>aa", function ()
+ require("alpha.animations").redraw_buffer()
+ end}
+ },
+}