
# 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.json`pierādījumos](https://github.com/inline0/greph/blob/main/FEATURE_MATRIX.json), bet atveidotā tabula — [`FEATURE_MATRIX.md`tabulā](https://github.com/inline0/greph/blob/main/FEATURE_MATRIX.md).

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

```bash
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](https://greph.inline0.dev/lv/docs/compatibility/rg) un [Saderība / sg](https://greph.inline0.dev/lv/docs/compatibility/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.md`tabulā](https://github.com/inline0/greph/blob/main/FEATURE_MATRIX.md).

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