Dokumentacja CLI¶
Składnia¶
snapper [OPTIONS] [FILE...]
snapper init [--dry-run]
snapper sdiff [--no-color] [-f FORMAT] <OLD> <NEW>
snapper git-diff [--no-color] [-f FORMAT] [REF] [FILE...]
snapper watch [-f FORMAT] <PATTERNS...>
snapper lsp
Jeśli nie podano plików, snapper czyta ze stdin i pisze na stdout.
Opcje¶
-f, --format <FORMAT>¶
Format wejściowy. Jeden z: org, latex, markdown, plaintext.
Wykrywany automatycznie na podstawie rozszerzenia pliku, gdy pominięty. Domyślnie plaintext dla stdin.
--stdin-filepath <ŚCIEŻKA>¶
Przyjmij tę nazwę pliku podczas czytania ze stdin, na potrzeby automatycznego wykrywania formatu. Przydatne dla integracji z edytorem, które przekazują zawartość bufora potokiem.
Przykład: cat paper.org | snapper --stdin-filepath paper.org
-o, --output <PLIK>¶
Zapisz wynik do pliku zamiast na stdout.
-i, --in-place¶
Modyfikuj pliki wejściowe w miejscu. Wymaga argumentów plikowych (nie stdin).
-w, --max-width <N>¶
Maksymalna szerokość linii. Zdania przekraczające tę szerokość są zawijane na granicach słów za pomocą textwrap. Domyślnie: 0 (bez limitu). Uwzględnia również max_line_length z .editorconfig, jeśli obecny.
--check¶
Tryb sprawdzania dla CI. Kończy działanie z kodem 1, jeśli jakikolwiek plik uległby zmianie, bez modyfikowania czegokolwiek. Wypisuje ścieżki plików wymagających przeformatowania na stderr.
--diff¶
Wyświetla ujednolicony diff planowanych zmian, bez modyfikowania czegokolwiek. Przydatne do przeglądu przed commitem. Kończy działanie z kodem 1, jeśli jakikolwiek plik uległby zmianie.
--range <START:END>¶
Formatuj tylko linie w podanym zakresie (indeksowanie od 1, włącznie). Linie poza zakresem przechodzą bez zmian. Przydatne dla integracji formatowania zaznaczenia w edytorze.
Przykład: snapper --range 10:20 paper.org
--output-format <text|json|sarif>¶
Format wyjściowy dla trybu --check. Domyślnie: text (wypisuje nazwy plików na stderr).
json: zwraca tablicę JSON ze ścieżkami plików i liczbą liniisarif: zwraca SARIF v2.1.0 do integracji z GitHub Code Scanning
--neural¶
Użyj neuronowego wykrywania zdań przez nnsplit (LSTM na poziomie bajtów, backend tract). Pobiera i zapisuje model (~4MB) do ~/.cache/nnsplit/ przy pierwszym użyciu. Wykrywanie oparte na regułach pozostaje domyślne (szybsze, lepsza obsługa skrótów). Wykrywanie neuronowe sprawdza się najlepiej w tekście nieangielskim.
--lang <KOD>¶
Język dla neuronowego wykrywania zdań. Domyślnie: en. Dostępne: en, de, fr, no, sv, zh, tr, ru, uk.
--model-path <ŚCIEŻKA>¶
Ścieżka do niestandardowego pliku modelu ONNX dla wykrywania neuronowego. Nadpisuje --lang.
--config <ŚCIEŻKA>¶
Ścieżka do pliku konfiguracyjnego .snapperrc.toml. Gdy pominięta, snapper szuka od bieżącego katalogu w górę.
-h, --help¶
Wyświetl komunikat pomocy.
-V, --version¶
Wyświetl wersję.
Podkomendy¶
snapper init¶
Zainicjalizuj snappera dla projektu. Wykrywa, które formaty prozy istnieją w drzewie katalogów i generuje:
.snapperrc.tomlz rozsądnymi wartościami domyślnymiwpisy
.gitattributesdla filtra git smudge/cleanfragment hooka pre-commit
fragment konfiguracji Apheleia (Emacs)
Użyj --dry-run, aby wyświetlić podgląd bez zapisywania plików.
snapper sdiff <OLD> <NEW>¶
Sentence-level diff between two files.
Parses both files, extracts sentences, diffs at sentence granularity.
Whitespace reflow produces zero diff.
Colored output by default; use --no-color to disable.
Exits with code 1 if differences found.
snapper git-diff [REF] [FILE...]¶
Sentence-level diff against a git ref.
Default ref: HEAD.
If no files specified, diffs all changed prose files (.org, .tex, .md).
Uses git show REF:path to retrieve the old version.
snapper watch <PATTERNS...>¶
Watch files and auto-reformat on save. Accepts file paths or glob patterns. 200ms debounce to avoid reformatting during rapid saves. Press Ctrl+C to stop.
snapper lsp¶
Start the Language Server Protocol server on stdin/stdout. Provides document formatting, range formatting, and diagnostics (flags lines with multiple sentences). Works with any LSP-compatible editor (Neovim, Emacs eglot, VS Code, Helix).
Kody wyjścia¶
0: Sukces (lub--check/--diffgdy nie są potrzebne zmiany)1:--checklub--diffznalazły pliki wymagające zmian, lub wystąpił błąd