Združljivost z rg
vendor/bin/rg je ovojnica za združljivost v slogu ripgrep. Sprejema najpogosteje uporabljene zastavice ripgrep, drevo datotek pregleduje enako kot ripgrep in izpisuje ujemanja. Preverjeni nabor je povzet po izvajanju preizkusov z izvorno binarno datoteko rg in je na voljo v Napredno / Matrika funkcij.
Ovojnica je tanek prevajalnik CLI; dejansko iskanje opravi isti pogon Greph\Text\TextSearcher, ki ga uporablja vendor/bin/greph.
Kdaj jo uporabiti
Ovojnico uporabite, kadar:
- Imate obstoječe orodje, agenta ali skript, ki že kliče
rg. - Želite neposredno zamenjavo, ki deluje v okoljih, kjer ripgrep ne morete namestiti (deljeno gostovanje, utrjeni vsebniki, omejeni PaaS).
- Želite ergonomijo ripgrep na infrastrukturi, ki podpira samo PHP.
Izvorno različico vendor/bin/greph uporabite, kadar:
- Pišete novo kodo in ne potrebujete oblike ripgrep CLI.
- Želite dostop do izvornih zastavic, ki jih ovojnica ne ponuja (na primer način AST).
Uporaba
rg [options] pattern [path...]
rg --files [options] [path...]
Samostojen klic rekurzivno išče v .:
./vendor/bin/rg -F "function"
--files izpiše seznam datotek kandidatov, namesto da bi iskal:
./vendor/bin/rg --files
./vendor/bin/rg --files --type php
./vendor/bin/rg --files --hidden
Izhod JSON
--json izpiše enako vsebino v obliki dogodkov, kot jo ustvari ripgrep:
./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}}}}
Časi v objektih stats so vedno prikazani kot nič.
To je shema, ki jo pričakujejo nadaljnja orodja, kadar omogočijo strukturirani izhod ripgrep. Če želite preprostejšo obliko, uporabite vendor/bin/greph --json.
Preverjeni nabor
Naslednje zastavice so preverjene neposredno glede na rg v matriki funkcij. Izvorna binarna datoteka in ovojnica pri vsakem preizkusu ustvarita enakovreden izhod. Če ima zastavica kratko in dolgo obliko, preizkus uporabi eno od njiju, ovojnica pa obe razčleni kot isto možnost.
Iskalne zastavice
-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
Zastavice pregledovalnika
-L,--follow--glob GLOB--type NAME--type-not NAME--no-ignore--hidden--files--files --hidden--files --type NAME
Izhodne zastavice
--json
Sprejete brez preizkusa
Ovojnica sprejema tudi te zastavice, vendar jih še ne pokriva noben preizkus matrike funkcij:
-j N,--threads N(število delavcev; glejte Vzporedni delavci)-q,--quiet--no-follow
Omejitve
Ovojnica rg orodja Greph pokriva iskalne in pregledovalne možnosti, ki jih uporablja večina orodij in agentov. Trenutno ne ponuja naslednjih funkcij ripgrep:
- Večvrstični regularni izrazi (
-U,--multiline) - Zamenjava (
-r,--replace) v besedilnem načinu (namesto tega uporabite prepisovanje ASTvendor/bin/greph) - Definicije vrst po meri (
--type-add,--type-clear) - Zastavice kodiranja (
-E,--encoding) - Filtrirni skripti
--pre --sort,--sortr
Če vam manjka zastavica, prijavite težavo in priložite preizkus, ki ste ga izvedli z izvornim programom rg, ter pričakovani izhod. Nove funkcije so dodane skupaj s preizkusi po referenčni implementaciji, zato se preverjeni nabor širi.
Ujemanje vedenja
Ovojnica si prizadeva za ujemanje vedenja, ne bajtov. Izhod je enakovreden po vrsticah, vendar se lahko kozmetične podrobnosti razlikujejo (barvne kode, krajšanje glede na širino terminala). Preizkusi za matriko funkcij preverjajo semantično enakovrednost, ne povsem enakih bajtov.
Za agente in orodja, ki razčlenjujejo izhod, so polja, pomembna za razčlenjevalnik (pot do datoteke, številka vrstice, vsebina, mesto ujemanja), pri vsakem preverjenem preizkusu bajtno enaka izvornemu rg.