Exuberant Ctags#
Program ctags#
--filter−terminator#
Argument --filter−terminator
dla bieżącego wywołania programu ctags określa tekstowy separator, który będzie dodawany na końcu tagów wygenerowanych dla kolejnych plików/folderów przekazanych w trybie pobierania informacji ze standardowego wejścia po użyciu argumentu --filter
.
Opis działania#
Prawidłowe użycie argumentu najlepiej objaśnić na zapisie składniowym:
ctags --filter−terminator[=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 - wartość tekstowa reprezentująca separator, który będzie rozdzielał wygenerowane tagi dla kolejnych plików/folderów przekazanych w trybie pobierania informacji ze standardowego wejścia. Pusta wartość
""
stanowi domyślne zachowanie i jest to równoznaczne z brakiem przekazania argumentu--filter−terminator
. - 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 --filter−terminator
ma znaczenie tylko w połączeniu z argumentem --filter
. Można go 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.
Tekstowy separator jest oddzielany od ostatniego wiersza w wygenerowanych tagach dzięki znakowi nowej linii, który zawsze znajduje się na końcu wygenerowanych tagów. W przypadku rekursywnego analizowania folderów poprzez argument --recursive
lub -R
tekstowy separator zostanie dodany tylko raz, na samym końcu tagów wygenerowanych dla całej zawartości wskazanego folderu.
Warto zaznaczyć, że tekstowy separator jest dodawany na samym końcu tylko tych tagów, które wygenerowano dla plików/folderów wprowadzonych bezpośrednio do standardowego wejścia. Nigdy nie zostanie dodany do tych tagów, które wygenerowano dla ścieżek umieszczonych w dowolnym miejscu jednego z wariantów konfiguracyjnych.
Rozdzielanie tagów wygenerowanych dla kolejnych plików/folderów poprzez własny separator może ułatwić zewnętrznym programom późniejsze ich przetwarzanie.
Prosty przykład:
ctags --filter−terminator="" --filter :: bez tekstowego separatora
ctags --filter−terminator= --filter :: bez tekstowego separatora
ctags --filter−terminator --filter :: bez tekstowego separatora
ctags --filter :: bez tekstowego separatora
ctags --filter−terminator="======" --filter :: tekstowy separatora w postaci '======'
ctags --filter−terminator======= --filter :: tekstowy separatora w postaci '======'
ctags --filter−terminator=SEPARATOR --filter−terminator --filter :: bez tekstowego separatora
ctags --filter−terminator=SEPARATOR --filter --filter−terminator :: bez tekstowego separatora
ctags --filter−terminator --filter−terminator=SEPARATOR --filter :: tekstowy separatora w postaci 'SEPARATOR'
ctags --filter−terminator --filter --filter−terminator=SEPARATOR :: tekstowy separatora w postaci 'SEPARATOR'
:: tekstowy separator w postaci 'SEPARATOR' zadziała tylko dla plików/folderów podanych bezpośrednio do stdin
ctags --filter --filter−terminator=SEPARATOR test.js test.html
:: Błędne przypadki
ctags -filter−terminator
ctags --filter−terminator="cos"
ctags --filter−terminator=cos
ctags --filter−terminator=""
ctags --filter−terminator=
ctags --filter−terminator