Skip to content

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

@epwalsh

Description

@epwalsh

🚀 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.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions