# 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))))

