diff options
| author | Thomas Vanbesien <tvanbesi@proton.me> | 2026-06-24 17:52:08 +0200 |
|---|---|---|
| committer | Thomas Vanbesien <tvanbesi@proton.me> | 2026-06-24 17:52:08 +0200 |
| commit | 8e18ba3557df6fb71ce0b31a8984fe0361bad070 (patch) | |
| tree | 500bf257065ae1af396abf8a3a81102c08293778 /plugin | |
| parent | 3f586600ba1b2c61490a76b654e23228bdeaeee9 (diff) | |
| download | nvim-config-8e18ba3557df6fb71ce0b31a8984fe0361bad070.tar.gz nvim-config-8e18ba3557df6fb71ce0b31a8984fe0361bad070.zip | |
refactor(nvim): rewrite lorem plugin
Diffstat (limited to 'plugin')
| -rw-r--r-- | plugin/50-lorem.lua | 47 |
1 files changed, 26 insertions, 21 deletions
diff --git a/plugin/50-lorem.lua b/plugin/50-lorem.lua index 8970574..5bed13e 100644 --- a/plugin/50-lorem.lua +++ b/plugin/50-lorem.lua @@ -1,35 +1,40 @@ -- --- Lorem plugin (command to insert "lorem ipsum" words) +-- 50-lorem.lua +-- +-- * Defines a command to insert a "lorem ipsum" string of a given word count, cycling through a +-- fixed pool of words. +-- +-- User commands: +-- `Lorem {n}`: put an n-words long "lorem ipsum" string -- --- Returns lorem ipsum words -local function iter_lorem() - local filename = vim.env.HOME .. "/.local/share/dotfiles/lorem.txt" - local file = assert(io.open(filename, "r")) - local string = file:read("*all") - io.close(file) - local lorem_words = vim.split(vim.trim(string), " ", { trimempty = true }) - local i = 0 - return function() - i = i % #lorem_words + 1 - return lorem_words[i] - end -end +local lorem_words = vim.split( + vim.trim([[ + lorem ipsum dolor sit amet consectetur adipiscing elit morbi vestibulum sem risus vitae + pulvinar sem rhoncus vel vestibulum non nisl varius luctus ex in facilisis mauris nam non ex + nisi suspendisse posuere fringilla dictum vestibulum id dignissim eros etiam vulputate mi + nisi aliquam rutrum libero tempor sed fusce nec blandit dui integer et tincidunt velit etiam + lacinia tortor eu viverra malesuada ut vitae libero pharetra sollicitudin urna nec dignissim + libero donec ex neque iaculis eget volutpat id faucibus vel urna nullam egestas felis dolor + ac dignissim ligula ultricies et integer molestie rhoncus ante maximus bibendum vestibulum + luctus turpis eu commodo mollis quam nunc dictum nunc et iaculis justo erat ullamcorper nulla + aenean ac magna dui sed vitae viverra tortor hendrerit sagittis sem + ]]), + "%s+", + { trimempty = true } +) --- Returns a n words long "lorem ipsum" string +-- Returns an n-words long "lorem ipsum" string, cycling through `lorem_words`. local function get_lorem(n) - local iter = iter_lorem() local words = {} for i = 1, n do - words[i] = iter() + words[i] = lorem_words[(i - 1) % #lorem_words + 1] end return table.concat(words, " ") end -local function put_lorem(n) - vim.api.nvim_put({ get_lorem(n) }, "c", true, true) -end +---------------------------------------------------------------------------------------------------- vim.api.nvim_create_user_command("Lorem", function(opts) - put_lorem(tonumber(opts.args)) + vim.api.nvim_put({ get_lorem(tonumber(opts.args)) }, "c", true, true) end, { desc = "Put lorem ipsum string", nargs = 1 }) |
