Kompatibilitet med rg
vendor/bin/rg är ett kompatibilitetsomslag i ripgrep-stil. Det tar emot de vanligaste flaggorna i ripgrep, söker igenom filträdet på samma sätt som ripgrep och skriver ut matchande resultat. De verifierade funktionerna är återgivna från testkörningar mot uppströmsversionens binärfil rg och finns i Avancerat / funktionsmatris.
Omslaget är en tunn översättare av CLI; själva sökningen utförs av samma motor i Greph\Text\TextSearcher som vendor/bin/greph använder.
När du ska använda det
Använd omslaget när:
- Du har ett befintligt verktyg, en agent eller ett skript som redan anropar
rg. - Du vill ha en direkt ersättare som fungerar i miljöer där du inte kan installera ripgrep självt (delad hosting, härdade containrar, begränsade PaaS-miljöer).
- Du vill ha ripgrep-ergonomi på infrastruktur där endast PHP finns.
Använd inbyggda vendor/bin/greph när:
- Du skriver ny kod och inte behöver formen ripgrep CLI.
- Du vill använda inbyggda flaggor som omslaget inte erbjuder (till exempel AST-läge).
Användning
rg [options] pattern [path...]
rg --files [options] [path...]
Ett kommando utan argument genomsöker . rekursivt:
./vendor/bin/rg -F "function"
--files visar kandidater bland filer i stället för att söka:
./vendor/bin/rg --files
./vendor/bin/rg --files --type php
./vendor/bin/rg --files --hidden
Utdata från JSON
--json skickar ut samma händelseformade innehåll som ripgrep producerar:
./vendor/bin/rg --json -F "function walk" src/Greph.php
{"type":"begin","data":{"path":{"text":"src/Greph.php"}}}
{"type":"match","data":{"path":{"text":"src/Greph.php"},"lines":{"text":" public static function walk(string|array $paths, ?WalkOptions $options = null): FileList\n"},"line_number":41,"absolute_offset":1034,"submatches":[{"match":{"text":"function walk"},"start":18,"end":31}]}}
{"type":"end","data":{"path":{"text":"src/Greph.php"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":0,"human":"0.000000s"},"searches":1,"searches_with_match":1,"bytes_searched":13383,"bytes_printed":282,"matched_lines":1,"matches":1}}}
{"type":"summary","data":{"elapsed_total":{"human":"0.000000s","nanos":0,"secs":0},"stats":{"bytes_printed":282,"bytes_searched":13383,"matched_lines":1,"matches":1,"searches":1,"searches_with_match":1,"elapsed":{"human":"0.000000s","nanos":0,"secs":0}}}}
Tiderna i objekten stats rapporteras alltid som noll.
Det här är schemat som nedströmsverktyg förväntar sig när de aktiverar den strukturerade utdatafunktionen för ripgrep. Använd vendor/bin/greph --json i stället om du vill ha en enklare struktur.
Verifierade funktioner
Följande flaggor har verifierats mot själva rg i funktionsmatrisen. Den uppströms binärfilen och omslaget ger likvärdig utdata för varje test. Om en flagga har en kort och en lång stavning använder testet den ena, och omslaget tolkar båda som samma alternativ.
Sökflaggor
-F,--fixed-strings-i,--ignore-case-w,--word-regexp-v,--invert-match-c,--count-l,--files-with-matches--files-without-match-I,--no-filename-H,--with-filename-n,--line-number-A N,--after-context N-B N,--before-context N-C N,--context N-m N,--max-count N-e P,--regexp P
Genomsökningsflaggor
-L,--follow--glob GLOB--type NAME--type-not NAME--no-ignore--hidden--files--files --hidden--files --type NAME
Utdataflaggor
--json
Accepteras utan test
Omslaget accepterar även dessa flaggor, men ingen testkörning för funktionsmatrisen täcker dem ännu:
-j N,--threads N(antal arbetare, se Parallella arbetare)-q,--quiet--no-follow
Begränsningar
Omslaget för Greph rg täcker sök- och genomsökningsfunktionerna som används av de flesta verktyg och agenter. Följande ripgrep-funktioner är för närvarande inte tillgängliga:
- Flerradiga regex (
-U,--multiline) - Ersättning (
-r,--replace) i textläge (använd AST-omskrivning medvendor/bin/grephi stället) - Anpassade typdefinitioner (
--type-add,--type-clear) - Kodningsflaggor (
-E,--encoding) - Filter för skript med
--pre --sort,--sortr
Om du stöter på en flagga som saknas kan du skapa ett ärende med testkörningen du gjorde mot uppströmsversionen av rg och den förväntade utdatan. Nya funktioner läggs till tillsammans med sina jämförelsetester, så att de verifierade funktionerna fortsätter att utökas.
Beteendeparitet
Omslaget eftersträvar beteendeparitet, inte byteparitet. Utdata motsvarar varandra rad för rad, men kosmetiska detaljer kan skilja sig (färgkoder, trunkering efter terminalbredd). Testerna i funktionsmatrisen kontrollerar semantisk likvärdighet, inte exakta byteskillnader.
För agenter och verktyg som tolkar utdata är fälten som är relevanta för parsern (filsökväg, radnummer, innehåll, matchningsposition) byteidentiska med uppströmsversionen av rg i varje verifierat test.