Pāriet uz saturu

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:

  1. rg saderības virsma: katra zonde tiek izpildīta gan ar augšupstraumes rg bināro failu, gan ar bin/rg. Lai rinda tiktu atzīmēta kā atbalstīta, abiem jāPass.
  2. sg saderības virsma: katra zonde tiek izpildīta gan ar augšupstraumes sg bināro failu, gan ar bin/sg. Lai rinda tiktu atzīmēta kā atbalstīta, abiem jāPass.
  3. 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).
  4. 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ē.
  5. Indeksētā greph virsma: zondes, kas pārbauda bin/greph-index (izveidi, atsvaidzināšanu un uzsildītu teksta meklēšanu).
  6. 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

Apvalks
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.