summaryrefslogtreecommitdiffstats
path: root/plugin
diff options
context:
space:
mode:
authorThomas Vanbesien <tvanbesi@proton.me>2026-06-24 17:52:08 +0200
committerThomas Vanbesien <tvanbesi@proton.me>2026-06-24 17:52:08 +0200
commit8e18ba3557df6fb71ce0b31a8984fe0361bad070 (patch)
tree500bf257065ae1af396abf8a3a81102c08293778 /plugin
parent3f586600ba1b2c61490a76b654e23228bdeaeee9 (diff)
downloadnvim-config-8e18ba3557df6fb71ce0b31a8984fe0361bad070.tar.gz
nvim-config-8e18ba3557df6fb71ce0b31a8984fe0361bad070.zip
refactor(nvim): rewrite lorem plugin
Diffstat (limited to 'plugin')
-rw-r--r--plugin/50-lorem.lua47
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 })