obsidian.nvim icon indicating copy to clipboard operation
obsidian.nvim copied to clipboard

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

Open epwalsh opened this issue 11 months ago • 0 comments

🚀 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: https://github.com/epwalsh/obsidian.nvim/discussions/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.

epwalsh avatar Mar 07 '24 01:03 epwalsh