Liigu sisu juurde

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

Shell
rg [options] pattern [path...]
rg --files [options] [path...]

Paljas käivitus otsib rekursiivselt asukohast .:

Shell
./vendor/bin/rg -F "function"

--files loetleb otsimise asemel kandidaatfailid:

Shell
./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:

Shell
./vendor/bin/rg --json -F "function walk" src/Greph.php
JSON
{"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:

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 suvandiga vendor/bin/greph)
  • Kohandatud tüübi definitsioonid (--type-add, --type-clear)
  • Kodeeringulipud (-E, --encoding)
  • --pre filtriskriptid
  • --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.