
# Združljivost z rg

`vendor/bin/rg` je ovojnica za združljivost v slogu ripgrep. Sprejema najpogosteje uporabljene zastavice ripgrep, drevo datotek pregleduje enako kot ripgrep in izpisuje ujemanja. Preverjeni nabor je povzet po izvajanju preizkusov z izvorno binarno datoteko `rg` in je na voljo v [Napredno / Matrika funkcij](https://greph.inline0.dev/sl/docs/advanced/feature-matrix).

Ovojnica je tanek prevajalnik CLI; dejansko iskanje opravi isti pogon `Greph\Text\TextSearcher`, ki ga uporablja `vendor/bin/greph`.

## Kdaj jo uporabiti

Ovojnico uporabite, kadar:

- Imate obstoječe orodje, agenta ali skript, ki že kliče `rg`.
- Želite neposredno zamenjavo, ki deluje v okoljih, kjer ripgrep ne morete namestiti (deljeno gostovanje, utrjeni vsebniki, omejeni PaaS).
- Želite ergonomijo ripgrep na infrastrukturi, ki podpira samo PHP.

Izvorno različico `vendor/bin/greph` uporabite, kadar:

- Pišete novo kodo in ne potrebujete oblike ripgrep CLI.
- Želite dostop do izvornih zastavic, ki jih ovojnica ne ponuja (na primer način AST).

## Uporaba

```bash
rg [options] pattern [path...]
rg --files [options] [path...]
```

Samostojen klic rekurzivno išče v `.`:

```bash
./vendor/bin/rg -F "function"
```

`--files` izpiše seznam datotek kandidatov, namesto da bi iskal:

```bash
./vendor/bin/rg --files
./vendor/bin/rg --files --type php
./vendor/bin/rg --files --hidden
```

## Izhod JSON

`--json` izpiše enako vsebino v obliki dogodkov, kot jo ustvari ripgrep:

```bash
./vendor/bin/rg --json -F "function walk" src/Greph.php
```

```json
{"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}}}}
```

Časi v objektih `stats` so vedno prikazani kot nič.

To je shema, ki jo pričakujejo nadaljnja orodja, kadar omogočijo strukturirani izhod ripgrep. Če želite preprostejšo obliko, uporabite `vendor/bin/greph --json`.

## Preverjeni nabor

Naslednje zastavice so preverjene neposredno glede na `rg` v [matriki funkcij](https://greph.inline0.dev/sl/docs/advanced/feature-matrix). Izvorna binarna datoteka in ovojnica pri vsakem preizkusu ustvarita enakovreden izhod. Če ima zastavica kratko in dolgo obliko, preizkus uporabi eno od njiju, ovojnica pa obe razčleni kot isto možnost.

### Iskalne zastavice

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

### Zastavice pregledovalnika

- `-L`, `--follow`
- `--glob GLOB`
- `--type NAME`
- `--type-not NAME`
- `--no-ignore`
- `--hidden`
- `--files`
- `--files --hidden`
- `--files --type NAME`

### Izhodne zastavice

- `--json`

### Sprejete brez preizkusa

Ovojnica sprejema tudi te zastavice, vendar jih še ne pokriva noben preizkus matrike funkcij:

- `-j N`, `--threads N` (število delavcev; glejte [Vzporedni delavci](https://greph.inline0.dev/sl/docs/advanced/parallel))
- `-q`, `--quiet`
- `--no-follow`

## Omejitve

Ovojnica `rg` orodja Greph pokriva iskalne in pregledovalne možnosti, ki jih uporablja večina orodij in agentov. Trenutno ne ponuja naslednjih funkcij ripgrep:

- Večvrstični regularni izrazi (`-U`, `--multiline`)
- Zamenjava (`-r`, `--replace`) v besedilnem načinu (namesto tega uporabite prepisovanje AST `vendor/bin/greph`)
- Definicije vrst po meri (`--type-add`, `--type-clear`)
- Zastavice kodiranja (`-E`, `--encoding`)
- Filtrirni skripti `--pre`
- `--sort`, `--sortr`

Če vam manjka zastavica, prijavite težavo in priložite preizkus, ki ste ga izvedli z izvornim programom `rg`, ter pričakovani izhod. Nove funkcije so dodane skupaj s preizkusi po referenčni implementaciji, zato se preverjeni nabor širi.

## Ujemanje vedenja

Ovojnica si prizadeva za ujemanje vedenja, ne bajtov. Izhod je enakovreden po vrsticah, vendar se lahko kozmetične podrobnosti razlikujejo (barvne kode, krajšanje glede na širino terminala). Preizkusi za [matriko funkcij](https://greph.inline0.dev/sl/docs/advanced/feature-matrix) preverjajo semantično enakovrednost, ne povsem enakih bajtov.

Za agente in orodja, ki razčlenjujejo izhod, so polja, pomembna za razčlenjevalnik (pot do datoteke, številka vrstice, vsebina, mesto ujemanja), pri vsakem preverjenem preizkusu bajtno enaka izvornemu `rg`.
