rg-ühilduvus
vendor/bin/rg on ripgrep-stiilis ühilduvusümbris. See aktsepteerib sagedamini kasutatavaid ripgrep lippe, läbib failipuu samamoodi nagu ripgrep ja väljastab sobivad tulemused. Kontrollitud funktsioonide loend põhineb ülesvoolu binaarfaili rg vastaste testide tulemustel ja on saadaval lehel Täpsemad teemad / funktsioonide maatriks.
Ümbris on õhuke CLI-tõlkija; tegeliku otsingu teeb sama Greph\Text\TextSearcher mootor, mida kasutab vendor/bin/greph.
Millal seda kasutada
Kasutage ümbrist, kui:
- Teil on olemas tööriist, agent või skript, mis käivitab juba
rg. - Soovite asenduslahendust, mis töötab keskkondades, kuhu ei saa installida ripgrep-i ennast (jagatud majutus, tugevdatud konteinerid, piiratud PaaS).
- Soovite ripgrep kasutusmugavust taristus, kus on ainult PHP.
Kasutage natiivset vendor/bin/greph-i, kui:
- Kirjutate uut koodi ega vaja kuju ripgrep CLI.
- Soovite kasutada natiivseid lippe, mida ümbris ei paku (näiteks AST-režiimi).
Kasutamine
rg [options] pattern [path...]
rg --files [options] [path...]
Paljas käivitus otsib rekursiivselt asukohast .:
./vendor/bin/rg -F "function"
--files loetleb otsimise asemel kandidaatfailid:
./vendor/bin/rg --files
./vendor/bin/rg --files --type php
./vendor/bin/rg --files --hidden
JSON-väljund
--json väljastab sama sündmuste kujul andmekoorma, mille loob 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}}}}
stats-objektide ajaväärtuseks märgitakse alati null.
See on skeem, mida järgnevad tööriistad ootavad, kui need lubavad sisse ripgrep struktureeritud väljundi. Lihtsama struktuuri jaoks kasutage selle asemel vendor/bin/greph --json.
Kontrollitud funktsioonid
Järgmised lipud on kontrollitud otse rg-iga lehel funktsioonide maatriks. Ülesvoolu binaarfail ja ümbris annavad iga vastastesti puhul samaväärse väljundi. Kui lipul on lühike ja pikk kirjapilt, kasutab vastastest üht neist ning ümbris käsitleb mõlemat sama suvandina.
Otsingulipud
-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
Läbija lipud
-L,--follow--glob GLOB--type NAME--type-not NAME--no-ignore--hidden--files--files --hidden--files --type NAME
Väljundilipud
--json
Ilma vastastestita aktsepteeritud lipud
Ümbris aktsepteerib ka järgmisi lippe, kuid funktsioonide maatriksi vastastestid neid veel ei hõlma:
-j N,--threads N(tööliste arv, vt Paralleeltöölised)-q,--quiet--no-follow
Piirangud
Greph rg-ümbris katab otsingu ja läbimise funktsionaalsuse, mida enamik tööriistu ja agente kasutab. Praegu ei paku see järgmisi ripgrep funktsioone:
- Mitmerealine regex (
-U,--multiline) - Asendamine (
-r,--replace) tekstirežiimis (kasutage selle asemel AST ümberkirjutamist suvandigavendor/bin/greph) - Kohandatud tüübi definitsioonid (
--type-add,--type-clear) - Kodeeringulipud (
-E,--encoding) --prefiltriskriptid--sort,--sortr
Kui mõni lipp puudub, esitage probleem koos ülesvoolu rg-i vastu käivitatud vastastesti ja oodatud väljundiga. Uued funktsioonid lisatakse koos nende etalonvastastestidega, nii et kontrollitud funktsioonide loend täieneb pidevalt.
Käitumise vastavus
Ümbrise eesmärk on käitumise vastavus, mitte baitide täpne kattumine. Väljund on ridade kaupa samaväärne, kuid kosmeetilised üksikasjad võivad erineda (värvikoodid, terminali laiuse järgi kärpimine). Funktsioonide maatriksi vastastestid kontrollivad semantilist samaväärsust, mitte baitide täpseid erinevusi.
Väljundit parsivate agentide ja tööriistade jaoks on iga kontrollitud vastastesti korral parseri jaoks olulised väljad (failitee, reanumber, sisu, sobivuse asukoht) ülesvoolu rg-iga bait-baidilt identsed.