Skip to content

Commit

Permalink
feat: initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
vhyrro committed Feb 17, 2024
0 parents commit e4a3eb7
Show file tree
Hide file tree
Showing 2 changed files with 471 additions and 0 deletions.
27 changes: 27 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# A Collection of Lua Utilities for Neovim

This repository contains a small set of nicities for performing repetitive tasks within Neovim.
This set may shrink further as the features are included in other, larger "utility kits".

The code you see in this repository is primarily used within [Neorg](https://github.com/nvim-neorg/neorg).
All functions are annotated using [LuaCATS](https://luals.github.io/wiki/annotations).

The highlight of the repository is the `match` function, allowing for complex testing of conditions
in a similar fashion to e.g. Rust. Below is an example:
```lua
local match = require("lua-utils").match

local my_string = "possible-value"

--- @type integer|string|table
local transformed_value = match(my_string) {
["possible-value"] = 10, -- Simple return type.
[{ "value1", "value2" }] = "special-case", -- Handling of many cases.
_ = function() -- Functions will be automatically invoked and their return values propagated.
print("Error: invalid value provided!")
return {}
end,
}

print(transformed_value)
```
Loading

0 comments on commit e4a3eb7

Please sign in to comment.