使用 ripgrep 搜索代码的 Web 界面,构建为 Datasette 插件
有关此项目的背景信息,请参见 datasette-ripgrep: 部署用于源代码的正则表达式搜索引擎。
在此试用此插件:https://ripgrep.datasette.io/-/ripgrep - 在此您可以对 Datasette 以及 simonw GitHub 用户名下的所有 datasette-*
插件的源代码进行正则表达式搜索。
一些示例搜索
- with.*AsyncClient - 正则表达式搜索
with.*AsyncClient
- .plugin_config, literal=on - 对
.plugin_config(
的非正则表达式搜索 - with.*AsyncClient glob=datasette/** - 仅在
datasette/
顶级文件夹中搜索该模式 - "sqlite-utils[">] glob=setup.py - 正则表达式搜索依赖于
sqlite-utils
或sqlite-utils>=some-version
的软件包 - test glob=!*.html - 搜索字符串
test
但排除 HTML 文件中的结果
将此插件安装到与 Datasette 相同的环境中。
$ datasette install datasette-ripgrep
需要安装 rg
可执行文件,以便此工具可以运行它。
此插件需要配置:它需要一个 path
设置,以便知道在哪里运行搜索。
创建一个 metadata.json
文件,内容如下
{
"plugins": {
"datasette-ripgrep": {
"path": "/path/to/your/files"
}
}
}
现在使用 datasette -m metadata.json
运行 Datasette。该插件将在 /-/ripgrep
添加一个用于运行搜索的界面。
"path"
配置是必需的。可选的额外配置项有
time_limit
- 浮点数。如果rg
进程运行时间超过此限制,将被终止。默认值为一秒,即1.0
。max_lines
- 整数。如果rg
进程返回的行数超过此限制,将被终止。默认值为2000
。
要在本地设置此插件,首先检出代码。然后创建一个新的虚拟环境
cd datasette-ripgrep
python3 -mvenv venv
source venv/bin/activate
或者如果您使用的是 pipenv
pipenv shell
现在安装依赖项和测试
pip install -e '.[test]'
运行测试
pytest