diff options
| author | Ariel D'Alessandro <dalessandro.ariel@gmail.com> | 2023-05-03 21:17:29 +0200 |
|---|---|---|
| committer | Ariel D'Alessandro <dalessandro.ariel@gmail.com> | 2023-05-04 09:08:30 +0200 |
| commit | 3b9945061ce45d856ae4cc1a905c85d3db948b6c (patch) | |
| tree | c369c9d712751380cbba78ff62edc94cf7a651ea | |
| parent | 6267e5222d80aa0beb3a933676d3157c27a9d03f (diff) | |
| download | nvim-conf-3b9945061ce45d856ae4cc1a905c85d3db948b6c.tar.gz nvim-conf-3b9945061ce45d856ae4cc1a905c85d3db948b6c.zip | |
add animation
| -rw-r--r-- | lazy-lock.json | 14 | ||||
| -rw-r--r-- | lua/alpha/animations.lua | 50 | ||||
| -rw-r--r-- | lua/plugins/animation.lua | 11 |
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} + }, +} |