sourcebot/packages/queryLanguage/test/prefixes.txt
Brendan Kellam f3a8fa3dab
Some checks failed
Publish to ghcr / build (linux/amd64, blacksmith-4vcpu-ubuntu-2404) (push) Has been cancelled
Publish to ghcr / build (linux/arm64, blacksmith-8vcpu-ubuntu-2204-arm) (push) Has been cancelled
Update Roadmap Released / update (push) Has been cancelled
Publish to ghcr / merge (push) Has been cancelled
feat(web): Streamed code search (#623)
* generate protobuf types

* stream poc over SSE

* wip: make stream search api follow existing schema. Modify UI to support streaming

* fix scrolling issue

* Dockerfile

* wip on lezer parser grammar for query language

* add lezer tree -> grpc transformer

* remove spammy log message

* fix syntax highlighting by adding a module resolution for @lezer/common

* further wip on query language

* Add case sensitivity and regexp toggles

* Improved type safety / cleanup for query lang

* support search contexts

* update Dockerfile with query langauge package

* fix filter

* Add skeletons to filter panel when search is streaming

* add client side caching

* improved cancelation handling

* add isSearchExausted flag for flagging when a search captured all results

* Add back posthog search_finished event

* remove zoekt tenant enforcement

* migrate blocking search over to grpc. Centralize everything in searchApi

* branch handling

* plumb file weburl

* add repo_sets filter for repositories a user has access to

* refactor a bunch of stuff + add support for passing in Query IR to search api

* refactor

* dev README

* wip on better error handling

* error handling for stream path

* update mcp

* changelog wip

* type fix

* style

* Support rev:* wildcard

* changelog

* changelog nit

* feedback

* fix build

* update docs and remove uneeded test file
2025-11-22 15:33:31 -08:00

336 lines
3.6 KiB
Text

# File prefix
file:README.md
==>
Program(PrefixExpr(FileExpr))
# File prefix short form
f:index.ts
==>
Program(PrefixExpr(FileExpr))
# Repo prefix
repo:myproject
==>
Program(PrefixExpr(RepoExpr))
# Repo prefix short form
r:github.com/user/repo
==>
Program(PrefixExpr(RepoExpr))
# Content prefix
content:function
==>
Program(PrefixExpr(ContentExpr))
# Content prefix short form
c:console.log
==>
Program(PrefixExpr(ContentExpr))
# Revision prefix
rev:main
==>
Program(PrefixExpr(RevisionExpr))
# Lang prefix
lang:typescript
==>
Program(PrefixExpr(LangExpr))
# Archived prefix - no
archived:no
==>
Program(PrefixExpr(ArchivedExpr))
# Archived prefix - only
archived:only
==>
Program(PrefixExpr(ArchivedExpr))
# Fork prefix - yes
fork:yes
==>
Program(PrefixExpr(ForkExpr))
# Fork prefix - only
fork:only
==>
Program(PrefixExpr(ForkExpr))
# Visibility prefix - public
visibility:public
==>
Program(PrefixExpr(VisibilityExpr))
# Context prefix
context:web
==>
Program(PrefixExpr(ContextExpr))
# Symbol prefix
sym:MyClass
==>
Program(PrefixExpr(SymExpr))
# RepoSet prefix
reposet:repo1,repo2
==>
Program(PrefixExpr(RepoSetExpr))
# File with wildcard
file:*.ts
==>
Program(PrefixExpr(FileExpr))
# File with path
file:src/components/Button.tsx
==>
Program(PrefixExpr(FileExpr))
# Repo with full URL
repo:github.com/org/project
==>
Program(PrefixExpr(RepoExpr))
# Multiple prefixes
file:test.js repo:myproject
==>
Program(AndExpr(PrefixExpr(FileExpr),PrefixExpr(RepoExpr)))
# Prefix with term
file:test.js console.log
==>
Program(AndExpr(PrefixExpr(FileExpr),Term))
# Term then prefix
console.log file:handler.ts
==>
Program(AndExpr(Term,PrefixExpr(FileExpr)))
# Multiple prefixes and terms
lang:typescript function file:handler.ts
==>
Program(AndExpr(PrefixExpr(LangExpr),Term,PrefixExpr(FileExpr)))
# Prefix with regex pattern
file:[a-z]+\.test\.js
==>
Program(PrefixExpr(FileExpr))
# Content with spaces in value (no quotes)
content:hello
==>
Program(PrefixExpr(ContentExpr))
# Revision with slashes
rev:feature/new-feature
==>
Program(PrefixExpr(RevisionExpr))
# RepoSet with multiple repos
reposet:repo1,repo2,repo3
==>
Program(PrefixExpr(RepoSetExpr))
# Symbol with dots
sym:package.Class.method
==>
Program(PrefixExpr(SymExpr))
# Lang with various languages
lang:python
==>
Program(PrefixExpr(LangExpr))
# Archived prefix - yes
archived:yes
==>
Program(PrefixExpr(ArchivedExpr))
# Archived prefix - invalid value (error case)
archived:invalid
==>
Program(AndExpr(PrefixExpr(ArchivedExpr(⚠)),Term))
# Fork prefix - no
fork:no
==>
Program(PrefixExpr(ForkExpr))
# Fork prefix - invalid value (error case)
fork:invalid
==>
Program(AndExpr(PrefixExpr(ForkExpr(⚠)),Term))
# Visibility prefix - private
visibility:private
==>
Program(PrefixExpr(VisibilityExpr))
# Visibility prefix - any
visibility:any
==>
Program(PrefixExpr(VisibilityExpr))
# Visibility prefix - invalid value (error case)
visibility:invalid
==>
Program(AndExpr(PrefixExpr(VisibilityExpr(⚠)),Term))
# File with dashes
file:my-component.tsx
==>
Program(PrefixExpr(FileExpr))
# Repo with numbers
repo:project123
==>
Program(PrefixExpr(RepoExpr))
# Content with special chars
content:@Component
==>
Program(PrefixExpr(ContentExpr))
# Context with underscores
context:data_engineering
==>
Program(PrefixExpr(ContextExpr))
# Prefix in parentheses
(file:test.js)
==>
Program(ParenExpr(PrefixExpr(FileExpr)))
# Multiple prefixes in group
(file:*.ts lang:typescript)
==>
Program(ParenExpr(AndExpr(PrefixExpr(FileExpr),PrefixExpr(LangExpr))))