Pereiti prie turinio

rg suderinamumas

vendor/bin/rg yra ripgrep stiliaus suderinamumo apvalkalas. Jis priima dažniausiai naudojamas ripgrep vėliavėles, naršo failų medį taip pat kaip ripgrep ir pateikia atitinkančią išvestį. Patikrintas funkcijų rinkinys atkurtas pagal patikras su pradine rg programa ir pateikiamas skiltyje Išplėstinės funkcijos / funkcijų matrica.

Apvalkalas yra plonas CLI transliatorius; pačią paiešką atlieka tas pats Greph\Text\TextSearcher variklis, kurį naudoja vendor/bin/greph.

Kada naudoti

Naudokite apvalkalą, kai:

  • Turite esamą įrankį, agentą arba scenarijų, kuris jau iškviečia rg.
  • Norite tiesioginio pakaitalo, veikiančio aplinkose, kuriose negalite įdiegti paties ripgrep (bendrojo naudojimo priegloba, sustiprinto saugumo konteineriai, apribota PaaS).
  • Norite ripgrep naudojimo patogumo infrastruktūroje, kurioje yra tik PHP.

Naudokite vietinį vendor/bin/greph, kai:

  • Rašote naują kodą ir jums nereikia ripgrep CLI formos.
  • Norite naudoti vietines vėliavėles, kurių apvalkalas nepateikia (pavyzdžiui, AST režimą).

Naudojimas

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

Paprasta iškvieta rekursyviai ieško .:

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

--files pateikia galimus failus, o ne atlieka paiešką:

Shell
./vendor/bin/rg --files
./vendor/bin/rg --files --type php
./vendor/bin/rg --files --hidden

JSON išvestis

--json pateikia tą patį įvykiais paremtos struktūros duomenų rinkinį kaip ir 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 objektuose trukmės visada nurodomos kaip nulis.

Tai schema, kurios tikisi tolesni įrankiai, kai įjungia struktūruotą ripgrep išvestį. Jei norite paprastesnės struktūros, naudokite vendor/bin/greph --json.

Patikrintos funkcijos

Toliau pateiktos vėliavėlės patikrintos su pačiu rg, naudojant funkcijų matricą. Per kiekvieną patikrą pradinė programa ir apvalkalas pateikia lygiavertę išvestį. Jei vėliavėlė turi trumpą ir ilgą užrašymo formą, tikrinama viena forma, o apvalkalas abi formas apdoroja kaip tą pačią parinktį.

Paieškos vėliavėlės

  • -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

Failų naršymo vėliavėlės

  • -L, --follow
  • --glob GLOB
  • --type NAME
  • --type-not NAME
  • --no-ignore
  • --hidden
  • --files
  • --files --hidden
  • --files --type NAME

Išvesties vėliavėlės

  • --json

Priimamos be patikros

Apvalkalas taip pat priima šias vėliavėles, tačiau joms dar neatlikta funkcijų matricos patikra:

Apribojimai

Greph rg apvalkalas apima paieškos ir failų naršymo funkcijas, kurias naudoja dauguma įrankių ir agentų. Šiuo metu jame nėra šių ripgrep funkcijų:

  • Kelių eilučių regex (-U, --multiline)
  • Pakeitimas (-r, --replace) teksto režimu (vietoj to naudokite vendor/bin/greph AST perrašymą)
  • Tinkintų tipų apibrėžtys (--type-add, --type-clear)
  • Koduotės vėliavėlės (-E, --encoding)
  • --pre filtravimo scenarijai
  • --sort, --sortr

Jei trūksta vėliavėlės, pateikite problemos aprašą, pridėdami patikrą, kurią atlikote su pradine rg, ir laukiamą išvestį. Naujos funkcijos pateikiamos kartu su etaloninėmis patikromis, todėl patikrintų funkcijų rinkinys tik plečiasi.

Elgsenos lygiavertiškumas

Apvalkalo tikslas – elgsenos, o ne baitų lygiavertiškumas. Eilučių lygmeniu išvestis sutampa, tačiau gali skirtis kosmetinės detalės (spalvų kodai, nukirpimas pagal terminalo plotį). Atliekant funkcijų matricos patikras vertinamas semantinis, o ne tikslus baitų sutapimas.

Įrankiams ir agentams, kurie analizuoja išvestį, kiekvienos patikrintos pradinės rg programos atveju analizatoriui svarbūs laukai (failo kelias, eilutės numeris, turinys, atitikmens vieta) sutampa baitas į baitą.