Web interface for searching your code using ripgrep, built as a Datasette plugin
For background on this project see datasette-ripgrep: deploy a regular expression search engine for your source code.
Try this plugin out at https://ripgrep.datasette.io/-/ripgrep - where you can run regular expression searches across the source code of Datasette and all of the datasette-*
plugins belonging to the simonw GitHub user.
Some example searches:
with.*AsyncClient
.plugin_config(
datasette/
top foldersqlite-utils
or sqlite-utils>=some-version
test
but exclude results in HTML filesInstall this plugin in the same environment as Datasette.
$ datasette install datasette-ripgrep
The rg
executable needs to be installed such that it can be run by this tool.
This plugin requires configuration: it needs to a path
setting so that it knows where to run searches.
Create a metadata.json
file that looks like this:
{
"plugins": {
"datasette-ripgrep": {
"path": "/path/to/your/files"
}
}
}
Now run Datasette using datasette -m metadata.json
. The plugin will add an interface at /-/ripgrep
for running searches.
The "path"
configuration is required. Optional extra configuration options are:
time_limit
- floating point number. The rg
process will be terminated if it takes longer than this limit. The default is one second, 1.0
.max_lines
- integer. The rg
process will be terminated if it returns more than this number of lines. The default is 2000
.To set up this plugin locally, first checkout the code. Then create a new virtual environment:
cd datasette-ripgrep
python3 -mvenv venv
source venv/bin/activate
Or if you are using pipenv
:
pipenv shell
Now install the dependencies and tests:
pip install -e '.[test]'
To run the tests:
pytest