epwalsh / epwalsh/obsidian.nvim
Internal refactoring
- Dominant language
- Lua
- Stars
- 6.2k
- Forks
- 250
- PR merge metrics
- No merged PRs in 30d
Description
I've done a ton of refactoring recently to make obsidian.nvim more robust, configurable, faster, and easier to maintain. There's still a few more modules that need work:
## `obsidian.search`
- [x] The search and find functions have too many positional arguments, which should instead be passed as an options/kwargs table. (#246)
- [x] We should also abstract away the command line options so that we're not passing ripgrep CLI options directly to these functions (e.g. `{ "--fixed-strings" }`). Instead we should have other options in the options/kwargs table that map to these. (#246)
## `obsidian.util`
- [ ] I'd like to split this module up into several submodules:
```
util/
init.lua --> miscellaneous helper functions
str.lua --> all our additional string methods
tbl.lua --> all our additional table methods
```
## `obsidian.command`
- [x] Separate commands into their own submodules. (#271)
Contributor guide
Research direction
Start by inspecting the existing obsidian.util module and its callers. Split the utility code into util/init.lua, util/str.lua, and util/tbl.lua as described, preserving the existing helper behavior and updating references. Done means the utility responsibilities are separated without breaking the plugin.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- lua
- Domain
- tooling
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100