Exuberant Ctags#
Program ctags#
--format#
Argument --format
odpowiada za format generowanych tagów w bieżącym wywołaniu programu ctags, którym może być oryginalny format Ctags lub rozszerzony format Exuberant Ctags (domyślnie). W celu zachowania spójnego wyniku dla wszystkich analizowanych plików najlepiej umieszczać argument --format
jeszcze przed pierwszym analizowanym plikiem. Argument --format
jest ignorowany w trybie etags.
Opis działania#
Prawidłowe użycie argumentu najlepiej objaśnić na zapisie składniowym:
ctags --format=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 liczbowych wpływająca na format generowanych tagów:
"1"
- tagi z bieżącej generacji mają oryginalny format Ctags."2"
- tagi z bieżącej generacji mają rozszerzony format Exuberant Ctags. Jest to domyślne zachowanie i jest ono równoznaczne z brakiem przekazania argumentu--format
.
- 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).
Argument --format
można podawać wielokrotnie (separatorem jest spacja), i każdy kolejny będzie miał wpływ tylko na te pliki, które występują bezpośrednio po nim. Mieszanie różnych formatów tagów w tym samy wywołaniu programu ctags raczej większego sensu nie ma, ale warto wiedzieć o takiej możliwości.
Trzeba wyraźnie zaznaczyć, że pseudo tag !_TAG_FILE_FORMAT dla pliku indeksu jest ustalany w oparciu o wartość ostatniego argumentu --format
, który wystąpił przed argumentem path
, mimo że przełączanie formatu będzie realizowane dla każdego wystąpienia argumentu --format
. Jest to kolejny powód, aby zawsze umieszczać ostatni argument --format
jeszcze przed pierwszym użyciem argumentu path
.
Prosty przykład:
ctags --format=1 *
ctags --format=2 *
ctags *
ctags --format=1 -R
ctags --format=2 -R
ctags -R
ctags --format=1 -R
ctags -R --format=1
ctags --format=1 test.js test.html
ctags test.js --format=1 test.html
:: Błędne przypadki
ctags --format
ctags --format=
ctags --format=0
ctags --format=cos
ctags --format=" "
ctags --format=""
ctags * --format=1
ctags test.js --format=1