epwalsh / epwalsh/obsidian.nvim

Internal refactoring

Open
#244 0 comments 1 reaction 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.