Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Search and completion should use note buffers as the source of truth over filesystem #476

Open
epwalsh opened this issue Mar 7, 2024 · 0 comments

Comments

@epwalsh
Copy link
Owner

epwalsh commented Mar 7, 2024

🚀 The feature, motivation and pitch

Similar to how a language server would work. I think this would be pretty straight-forward to implement 80% of the way for completion, but search would be much more involved since we rely on shelling out to ripgrep. Therefore we'd probably need to run the search in Lua over buffers concurrently with ripgrep over the filesystem. I'm not too concerned about performance here since most people aren't likely to have a zillion buffers open, but if we hit a bottleneck we could use the nifty ThreadPoolExecutor that's currently sitting unused.

Alternatives

  1. Do nothing, nobody has complained yet anyway. And users can have obsidian.nvim autowrite buffers using the callback system: Auto-write every note when leaving buffer #481.
  2. Wait until we can integrate with markdown-oxide, or some other Obsidian-style markdown LS.

Additional context

  • Buffer/filesystem mismatch is not an issue with :ObsidianRename since we write all buffers before doing the grunt work there, but it would nice if that wasn't a requirement, in which case we'd have to loop over open buffers and do the rename there instead of in the filesystem.
  • We'd have to update picker integrations, in particular the previews, so that we show previews of buffers instead of files to avoid out-of-sync issues there.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant