silverbullet-grep
silverbullet-grep copied to clipboard
⚠️ Unmaintained for Silverbullet v2
Consider @MrMugame's excellent Silversearch instead
SilverBullet Grep Plug
silverbullet-grep is a Plug for SilverBullet to search notes in your space using git grep command.
Installation
Open your PLUGS note in SilverBullet and add this plug to the list:
- ghr:Maarrk/silverbullet-grep
Then run the {[Plugs: Update]} command and off you go!
Requirements
If you run SilverBullet using Docker, Git is already included. Otherwise install Git from your system's package manager, or following Git documentation.
Since the plug depends on a shell command, it will not work with SB_SHELL_BACKEND=off or on hosts that don't offer shell like Deno Deploy.
Usage
The plug provides the following commands:
- {[Grep: Version]}
- {[Grep: Search Literal Text]}
- {[Grep: Search Regex Pattern]}
- {[Grep: Literal Text Inside Current Folder]}
- {[Grep: Regex Pattern Inside Current Folder]}
You may want to set Shortcuts for them.
Configuration
This plug can be configured with Space Config, these are the default values and their usage:
grep:
# ignore case when search pattern is all lowercase
smartCase: true
# by default shows results in a virtual page, like the built-in search
# when set to true, the results will be saved to a regular markdown file
saveResults: false
# visually distinguish >>>matched part<<< in shown context
surround:
left: ">>>"
right: "<<<"
# or disable with
# surround: false
Note that surround markers may appear in different parts of page text depending on your query, so it's advised not to use markdown syntax there.
Is it any good?
Yes.
Roadmap
- Exclude files matching the
spaceIgnoresetting - Settings or commands for including meta and hidden pages
- Commands for searching pages by name
- Optionally include filename matches in the regular search based on a setting
Contributing
If you find bugs, report them on the issue tracker on GitHub. I doubt I will implement more features, Pull Requests are preferred.
Building from source
To build this plug, make sure you have SilverBullet installed. Then, build the plug with:
deno task build
Or to watch for changes and rebuild automatically
deno task watch
Then, copy the resulting .plug.js file into your space's _plug folder. Or build and copy in one command:
deno task build && cp *.plug.js /my/space/_plug/
SilverBullet will automatically sync and load the new version of the plug (or speed up this process by running the {[Sync: Now]} command).
License
MIT, following SilverBullet