rg saderība
vendor/bin/rg ir ar ripgrep saderīgs iesaiņotājs. Tas pieņem visbiežāk lietotos ripgrep karodziņus, pārlūko failu koku tāpat kā ripgrep un izvada atbilstības. Pārbaudītā funkcionalitāte ir iegūta, veicot pārbaudes ar sākotnējo rg bināro failu, un aprakstīta sadaļā Papildu informācija / Funkciju matrica.
Iesaiņotājs ir vienkāršs CLI tulkotājs; pašu meklēšanu veic tas pats Greph\Text\TextSearcher dzinis, ko izmanto vendor/bin/greph.
Kad to izmantot
Izmantojiet iesaiņotāju, ja:
- Jums jau ir rīks, aģents vai skripts, kas izsauc
rg. - Vēlaties uzreiz lietojamu aizstājēju, kas darbojas vidēs, kurās nevarat instalēt pašu ripgrep (koplietojamā mitināšanā, nostiprinātos konteineros vai ierobežotā PaaS vidē).
- Vēlaties ripgrep lietošanas ērtumu infrastruktūrā, kur pieejams tikai PHP.
Izmantojiet vietējo vendor/bin/greph, ja:
- Rakstāt jaunu kodu un jums nav vajadzīga ripgrep CLI forma.
- Vēlaties izmantot vietējos karodziņus, ko iesaiņotājs nepiedāvā (piemēram, AST režīmu).
Lietošana
rg [options] pattern [path...]
rg --files [options] [path...]
Vienkāršs izsaukums rekursīvi meklē .:
./vendor/bin/rg -F "function"
--files uzskaita kandidātfailus, neveicot meklēšanu:
./vendor/bin/rg --files
./vendor/bin/rg --files --type php
./vendor/bin/rg --files --hidden
JSON izvade
--json izvada tādas pašas formas notikumu datus kā 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}}}}
Objektos stats laiks vienmēr tiek norādīts kā nulle.
Šādu shēmu sagaida pakārtotie rīki, kad tie iespējo ripgrep strukturēto izvadi. Ja vēlaties vienkāršāku formu, izmantojiet vendor/bin/greph --json.
Pārbaudītās funkcijas
Tālāk norādītie karodziņi ir pārbaudīti ar pašu rg, un to apraksts pieejams sadaļā funkciju matrica. Sākotnējais binārais fails un iesaiņotājs katrai pārbaudei rada līdzvērtīgu izvadi. Ja karodziņam ir īsā un garā pieraksta forma, pārbaudē tiek izmantota viena no tām, un iesaiņotājs abus pierakstus apstrādā kā vienu un to pašu opciju.
Meklēšanas karodziņi
-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
Pārlūkošanas karodziņi
-L,--follow--glob GLOB--type NAME--type-not NAME--no-ignore--hidden--files--files --hidden--files --type NAME
Izvades karodziņi
--json
Pieņemtie karodziņi bez pārbaudes
Iesaiņotājs pieņem arī šos karodziņus, taču tie vēl nav pārbaudīti funkciju matricā:
-j N,--threads N(darbplūsmu izpildītāju skaits, skatiet sadaļu Paralēlie darbplūsmu izpildītāji)-q,--quiet--no-follow
Ierobežojumi
Greph rg iesaiņotājs nodrošina meklēšanas un pārlūkošanas funkcijas, ko izmanto vairums rīku un aģentu. Pašlaik tas neatbalsta šādas ripgrep funkcijas:
- Vairāku rindu regex (
-U,--multiline) - Aizstāšana teksta režīmā (
-r,--replace); tās vietā izmantojietvendor/bin/grephAST pārrakstīšanu - Pielāgotas tipu definīcijas (
--type-add,--type-clear) - Kodējuma karodziņi (
-E,--encoding) --prefiltra skripti--sort,--sortr
Ja pietrūkst kāda karodziņa, iesniedziet kļūdas ziņojumu, pievienojot pārbaudi, ko veicāt ar sākotnējo rg, un sagaidāmo izvadi. Jaunas funkcijas tiek pievienotas kopā ar to etalonpārbaudēm, tāpēc pārbaudītā funkcionalitāte arvien paplašinās.
Atbilstība darbībā
Iesaiņotāja mērķis ir darbības atbilstība, nevis identiski baiti. Izvade atbilst pa rindām, taču var atšķirties nebūtiskās detaļās (krāsu kodi, apgriešana atbilstoši termināļa platumam). Pārbaudes sadaļā funkciju matrica pārbauda semantisko atbilstību, nevis precīzu baitu sakritību.
Rīkiem un aģentiem, kas parsē izvadi, parsēšanai nozīmīgie lauki (faila ceļš, rindas numurs, saturs, atbilstības pozīcija) katrā pārbaudītajā gadījumā baitu līmenī sakrīt ar sākotnējā rg izvadi.