Liigu sisu juurde

Funktsioonide maatriks

Funktsioonide maatriks on genereeritud aruanne, mis näitab iga toetatud lipu ja käitumise kohta, kas algupärane tööriist ja Greph ümbris annavad samaväärse väljundi. See on tõeallikas küsimustele „kas Greph seda toetab?”.

Maatriks luuakse uuesti tegelike käskude proovide põhjal, kasutades deterministlikku testtööruumi. Algandmed asuvad failis FEATURE_MATRIX.json ning vormindatud tabel failis FEATURE_MATRIX.md.

Oleku tähendused

Olek Tähendus
Pass Proov käivitati ja tulemus vastas oodatud käitumisele
Fail Proov käivitati, kuid tulemus ei vastanud oodatud käitumisele
Unavailable Pakkuja käsk polnud selles keskkonnas saadaval

Jaotised

Maatriks koosneb kuuest jaotisest:

  1. rg ühilduvusliides: iga proovi käitatakse nii ülesvoolu rg binaarfaili kui ka bin/rg vastu. Rea märkimiseks toetatuks peavad mõlemad Pass.
  2. sg ühilduvusliides: iga proovi käitatakse nii ülesvoolu sg binaarfaili kui ka bin/sg vastu. Rea märkimiseks toetatuks peavad mõlemad Pass.
  3. Ainult sg ümbrise liides: proovid, mis sihivad üksnes bin/sg (lisafunktsioonid, mida ümbris pakub, kuid ast-grep ise mitte).
  4. Algupärane greph-liides: proovid, mis kasutavad otseselt bin/greph. Võrdlemiseks puudub ülesvoolu tööriist; proovid kontrollivad oodatud käitumist testtööruumis.
  5. Indekseeritud greph-liides: proovid, mis kasutavad bin/greph-index (indeksi loomine ja värskendamine ning soojendatud tekstiotsing).
  6. Indekseeritud AST-teegi liides: proovid, mis kutsuvad PHP API (Greph::buildAstIndex(), Greph::searchAstIndexed(), Greph::buildAstCache(), Greph::searchAstCached()) ning kontrollivad loomist, otsingut ja värskendamist.

Maatriksi uuesti loomine

Shell
php bin/feature-matrix

Käivitage see andmehoidla kloonist, kus rg ja sg on PATH-s; bin/feature-matrix ei kuulu Composer paketti. See loob testtööruumi, käivitab iga ühilduvusproovi ülesvoolu binaarfaili vastu (kui see on paigaldatud) ja Greph ümbrisega, salvestab struktureeritud tulemuse ning kirjutab nii FEATURE_MATRIX.json kui ka FEATURE_MATRIX.md. Lisage --stdout, et kuvada Markdown ilma faile kirjutamata.

Versioonihaldusse lisatud failid luuakse uuesti käsitsi; CI seda ei tee. CI-s käivitatav PHPUnit komplekt sisaldab testi, mis loob maatriksi, märkides ülesvoolu tööriistad kättesaamatuks, ja kontrollib aruande struktuuri. Seetõttu ei põhjusta ühe proovi nurjumine CI nurjumist. Enne väljalaset looge maatriks uuesti ja vaadake muudatused üle.

Maatriksi ja dokumentatsiooni sisu

CLI viitedokument ja lehed Ühilduvus / rg ning Ühilduvus / sg kirjeldavad kavandatud liidest. Funktsioonide maatriks näitab kontrollitud liidest ning iga rea juures on toodud täpsed proovikäsu argumendid.

Kui midagi on dokumenteeritud, kuid maatriksist puudu, on dokumentatsioon aegunud. Kui midagi on maatriksis, kuid dokumenteerimata, tuleb see dokumentatsiooni lisada. Mõlemad peavad kattuma.

Näidisread

rg ühilduvus (väljavõte)

Funktsioon rg bin/rg Märkused
Fikseeritud stringi otsing Läbitud Läbitud Proov: -F needle single.txt
Tõstutundetu fikseeritud stringi otsing Läbitud Läbitud Proov: -F -i needle single.txt
Terve sõna otsing Läbitud Läbitud Proov: -F -w needle words.txt
Glob-filtr Läbitud Läbitud Proov: --glob *.php function .
Peidetud failid Läbitud Läbitud Proov: --hidden -F secret .
Struktureeritud JSON väljund Läbitud Läbitud Proov: --json -F needle single.txt, kasutab sündmuse ripgrep semantikat JSON

sg ühilduvus (väljavõte)

Funktsioon sg bin/sg Märkused
Mustriotsing, kasutades run --pattern Läbitud Läbitud Proov: run --pattern array($$$ITEMS) src/App.php
Ümberkirjutamine run --rewrite abil Läbitud Läbitud Proov: run --pattern array($$$ITEMS) --rewrite [$$$ITEMS] src/App.php
Struktureeritud JSON voo väljund Läbitud Läbitud Proov: run --json=stream --pattern dispatch($EVENT) src/App.php
Kõigi vastete ümberkirjutamine Läbitud Läbitud Proov: run --pattern array($$$ITEMS) --rewrite [$$$ITEMS] --update-all src/App.php

Kogu tabelit vaadake jaotises FEATURE_MATRIX.md.

Miks proovid juhivad

Käsitsi hallatav ühilduvustabel vananeb. Ümbriste mõte on „asenda tööriistaga, mida kasutasid varem käsku rg või sg käivitama, ja kõik töötab edasi”. Selle lubaduse täitmiseks tuleb ülesvoolu tööriista ja ümbrist kõrvuti päriselt käivitada ning tulemusi võrrelda. Proovikäivitaja teeb just seda iga kord, kui maatriks uuesti luuakse.