Funkciju pārskats
Funkciju pārskats ir ģenerēts ziņojums, kurā katram atbalstītajam karodziņam un darbībai norādīts, vai vietējais rīks un Greph apliecējs rada līdzvērtīgu izvadi. Tas ir galvenais avots, atbildot uz jautājumiem “vai Greph to atbalsta?”.
Matrica tiek ģenerēta no reālām komandu pārbaudēm deterministiskā testa vidē. Neapstrādātie dati ir FEATURE_MATRIX.jsonpierādījumos, bet atveidotā tabula — FEATURE_MATRIX.mdtabulā.
Statusa skaidrojums
| Statuss | Nozīme |
|---|---|
Pass |
Zonde tika izpildīta un atbilda gaidītajai darbībai |
Fail |
Zonde tika izpildīta, bet neatbilda gaidītajai darbībai |
Unavailable |
Nodrošinātāja komanda šajā vidē nebija pieejama |
Sadaļas
Pārskats ir sadalīts sešās sadaļās:
- rg saderības virsma: katra zonde tiek izpildīta gan ar augšupstraumes
rgbināro failu, gan arbin/rg. Lai rinda tiktu atzīmēta kā atbalstīta, abiem jāPass. - sg saderības virsma: katra zonde tiek izpildīta gan ar augšupstraumes
sgbināro failu, gan arbin/sg. Lai rinda tiktu atzīmēta kā atbalstīta, abiem jāPass. - Tikai sg apliecēja virsma: zondes, kas paredzētas tikai
bin/sg(papildiespējas, ko piedāvā apliecējs, bet kuru pašam ast-grep nav). - Vietējā greph virsma: zondes, kas tieši pārbauda
bin/greph. Nav augšupstraumes rīka salīdzināšanai; zondes pārbauda gaidīto darbību testa vidē. - Indeksētā greph virsma: zondes, kas pārbauda
bin/greph-index(izveidi, atsvaidzināšanu un uzsildītu teksta meklēšanu). - Indeksētās AST bibliotēkas virsma: zondes, kas izsauc PHP API (
Greph::buildAstIndex(),Greph::searchAstIndexed(),Greph::buildAstCache(),Greph::searchAstCached()) un pārbauda izveidi, meklēšanu un atsvaidzināšanu.
Pārskata ģenerēšana no jauna
php bin/feature-matrix
Palaidiet to no repozitorija klona, kurā rg un sg ir PATH; bin/feature-matrix nav iekļauts Composer pakotnē. Tas izveido testa vidi, izpilda katru saderības zondi ar augšupstraumes bināro failu (ja tas ir instalēts) un Greph apliecēju, reģistrē strukturēto rezultātu un izveido gan FEATURE_MATRIX.json, gan FEATURE_MATRIX.md. Norādiet --stdout, lai izvadītu Markdown, neierakstot nevienu no failiem.
Nokomitētie faili tiek ģenerēti manuāli; CI tos neģenerē. PHPUnit testu kopa, ko palaiž CI, ietver testu, kas ģenerē pārskatu, atzīmējot augšupstraumes rīkus kā nepieejamus, un pārbauda tā struktūru, tāpēc viena zonde, kas sāk neizdoties, neizgāž CI. Pirms laidiena ģenerējiet pārskatu no jauna un pārskatiet izmaiņas.
Kas ir pārskatā un kas dokumentācijā
CLI atsauce un Saderība / rg un Saderība / sg lapās aprakstīta paredzētā funkcionalitāte. Funkciju pārskatā ir norādīta pārbaudītā funkcionalitāte, kā arī precīzi zondes argumenti pie katras rindas.
Ja kaut kas ir dokumentēts, bet nav pārskatā, dokumentācija ir novecojusi. Ja kaut kas ir pārskatā, bet nav dokumentēts, dokumentācija jāpapildina. Abiem jāsakrīt.
Rindu piemēri
rg saderība (fragments)
| Funkcija | rg | bin/rg | Piezīmes |
|---|---|---|---|
| Fiksētas virknes meklēšana | Pass | Pass | Zonde: -F needle single.txt |
| Reģistrnejutīga fiksētas virknes meklēšana | Pass | Pass | Zonde: -F -i needle single.txt |
| Pilna vārda meklēšana | Pass | Pass | Zonde: -F -w needle words.txt |
| Glob izteiksmes filtrs | Pass | Pass | Zonde: --glob *.php function . |
| Slēptie faili | Pass | Pass | Zonde: --hidden -F secret . |
| Strukturēta JSON izvade | Pass | Pass | Zonde: --json -F needle single.txt, izmantojot ripgrep JSON notikumu semantiku |
sg saderība (fragments)
| Funkcija | sg | bin/sg | Piezīmes |
|---|---|---|---|
Veidnes meklēšana ar run --pattern |
Pass | Pass | Zonde: run --pattern array($$$ITEMS) src/App.php |
Pārrakstīšana ar run --rewrite |
Pass | Pass | Zonde: run --pattern array($$$ITEMS) --rewrite [$$$ITEMS] src/App.php |
| Strukturēta JSON straumes izvade | Pass | Pass | Zonde: run --json=stream --pattern dispatch($EVENT) src/App.php |
| Visu atbilstību pārrakstīšana | Pass | Pass | Zonde: run --pattern array($$$ITEMS) --rewrite [$$$ITEMS] --update-all src/App.php |
Pilnu tabulu skatiet FEATURE_MATRIX.mdtabulā.
Kāpēc zondes ir svarīgas
Manuāli uzturēta saderības tabula noveco. Apliecēju mērķis ir tos ievietot tur, kur agrāk izsaucāt rg vai sg, un turpināt darbu; vienīgais veids, kā turēt šo solījumu, ir palaist augšupstraumes rīku un apliecēju līdzās un salīdzināt rezultātus. Zonžu palaidējs to dara ikreiz, kad pārskats tiek ģenerēts no jauna.