Exuberant Ctags#
Program ctags#
--recurse#
Argument --recurse
odpowiada za włączenie (to samo, co argument -R
) lub wyłączenie (domyślnie) rekursywnego analizowania zawartości przekazanych folderów w bieżącym wywołaniu programu ctags. W pewnych sytuacjach argument --recurse
zostanie potraktowany jak odroczony argument.
Opis działania#
Prawidłowe użycie argumentu najlepiej objaśnić na zapisie składniowym:
ctags --recurse[=value] [--argument | -argument] [path]
gdzie poszczególne człony oznaczają:
- ctags - ścieżka względna lub bezwzględna do pliku binarnego programu ctags (
ctags.exe
). Wszystko zależy od sposobu uruchamiania programu ctags, np. z systemowej konsoli, ze skrótu do programu czy z innego programu/skryptu. value - jedna z dwóch wartości logicznych wpływająca na sposób analizowania zawartości folderów (wielkość znaków nie ma znaczenia):
"yes"
,"on"
,"1"
lub""
- włącza rekursywne analizowanie zawartości przekazanych folderów. Alternatywnie można skorzystać z identycznie działającego skróconego argumentu-R
."no"
,"off"
lub"0"
- rekursywne analizowanie zawartości przekazanych folderów pozostaje wyłączony. Jest to domyślne zachowanie i jest ono równoznaczne z brakiem przekazania argumentu--recurse
.
- argument - jeden lub więcej dodatkowych argumentów dostrajających działanie programu ctags.
- path - jedna lub więcej dodatkowych ścieżek do plików/folderów, które będą analizowane przy generowaniu tagów (szczegóły).
Kilka uwag odnośnie stosowania argumentu --recurse
:
- Przy generowaniu tagów program ctags pobiera listę plików/folderów z różnych źródeł (np. z argumentu
path
lub-L
). Jeśli w żadnym z nich nie wskazano chociaż jednej ścieżki do pliku/folderu i nie użyto argumentu-L -
lub--filter
, to argument--recurse
stanie się odroczonym argumentem, gdzie po przetworzeniu wszystkich pozostałych argumentów rekursywnie przeanalizowany zostanie bieżący folder roboczy. Dzięki temu przekazanie samego argumentu--recurse
działa bez przeszkód. - Argument
--recurse
powoduje, że ostatni człon w ścieżce względnej lub bezwzględnej (tj. to, co za ostatnim znakiem"\"
) jest traktowany jednocześnie jak folder lub plik. Bez tego argumentu ostatni człon w ścieżce jest traktowany jak plik, dlatego powinien jasno wskazywać na plik/pliki, które chcemy przetworzyć (nie może być pusty). - Im wcześniej ustawimy/przekażemy argument
--recurse
, tym więcej potencjalnych ścieżek wskazujących na foldery nam obejmie. Można też przed każdym argumentempath
ustawić inny stan rekursywnego analizowania folderów. - Domyślnie rekursywne analizowanie folderów uwzględnia także linki symboliczne, ale można to zmienić argumentem
--links
. - Za pomocą argumentu
--exclude
można wykluczyć niektóre pliki/foldery przy rekursywnym analizowania folderów.
Prosty przykład:
ctags --recurse=yes
ctags --recurse=on
ctags --recurse=1
ctags --recurse=""
ctags --recurse=
ctags --recurse
ctags -R
ctags --recurse=no *
ctags --recurse=off *
ctags --recurse=0 *
ctags *
ctags --recurse=yes :: wszystkie pliki z bieżącego folderu roboczego i jego podfolderów tagfile ma postać ".\plik.js"
ctags --recurse=yes .\* :: wszystkie pliki z bieżącego folderu roboczego i jego podfolderów tagfile ma postać ".\plik.js"
ctags --recurse=yes * :: wszystkie pliki z bieżącego folderu roboczego i jego podfolderów tagfile ma postać "plik.js"
ctags --recurse=yes D:\test\* :: wszystkie pliki z folderu `test` i jego podfolderów tagfile ma postać "D:\test\plik.js"
ctags --recurse=yes "D:\nowy test\*" :: konieczne otoczenie znakami "" ze względu na spację w folderze `nowy test`
ctags --recurse=yes test :: wszystkie pliki z folderu `test` i jego podfolderów oraz plik `test`
ctags --recurse=yes test\* :: wszystkie pliki z folderu `test` i jego podfolderów
ctags test1* --recurse=yes test2* :: dowolne pliki o nazwie `test1` i `test2` oraz wszystkie pliki z folderu `test2` i jego podfolderów
ctags --recurse=yes --sort=no --format=1 :: `--recurse` jest argumentem odroczonym, dlatego zadziała `--sort` i `--format`
ctags --sort=no --recurse=yes --format=1 :: `--recurse` jest argumentem odroczonym, dlatego zadziała `--sort` i `--format`
ctags --sort=no --format=1 --recurse=yes :: `--recurse` jest argumentem odroczonym, dlatego zadziała `--sort` i `--format`
:: Błędne przypadki
ctags --recurse=cos
ctags --recurse=" "
ctags * --recurse=yes
ctags test --recurse=yes
ctags --recurse=no
ctags --recurse=off
ctags --recurse=0
Pasek społecznościowy