Exuberant Ctags#
Program ctags#
--line−directives#
Argument --line−directives
dla bieżącego wywołania programu ctags odpowiada za włączenie lub wyłączenie (domyślnie) przetwarzania dyrektywy #line
(info1, info2, info3, info4), która wpływa na postać generowanych tagów znajdujących się za tą dyrektywą.
Opis działania#
Prawidłowe użycie argumentu najlepiej objaśnić na zapisie składniowym:
ctags --line−directives[=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 przetwarzanie dyrektywy
#line
(wielkość znaków nie ma znaczenia):"yes"
,"on"
,"1"
lub""
- włącza przetwarzanie dyrektywy#line
dla generowanych tagów."no"
,"off"
lub"0"
- przetwarzanie dyrektywy#line
dla generowanych tagów pozostaje wyłączone. Jest to domyślne zachowanie i jest ono równoznaczne z brakiem przekazania argumentu--line−directives
.
- 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 --line−directives
:
- Argument
--line−directives
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. - Program ctags rozpoznaje tylko pełną postać dyrektywy
#line
w pliku źródłowym, tj. musi zawierać numer linii włącznie z nazwą pliku umieszczoną w podwójnych cudzysłowach (może być pusta), np.#line 1 ""
czy#line 20 "test.c"
. - Przetworzenie dyrektywy
#line
wpływa na postać generowanych tagów znajdujących się za tą dyrektywą (tj. na ich poletagfile
itagaddress
) zgodnie z wartościami umieszczonymi w dyrektywie. Ponadto całość ma zastosowanie tylko dla tych tagów, które do oznaczania swojego położenia w kodzie źródłowym używają numerów linii, co można wymusić argumentem--excmd
lub-n
. - Argument
--line−directives
działa we wszystkich obsługiwanych językach (zarówno tych pochodzących z wbudowanych parserów, jaki i tych z własnych wyrażeń regularnych). Jeśli plik zawierający dyrektywę#line
nie jest skojarzony z żadnym obsługiwanym językiem to można skorzystać z argumentów--langmap
lub--language−force
.
Prosty przykład:
ctags -n --line−directives=yes * :: przetwarzanie dyrektywy #line włączone
ctags -n --line−directives=on *
ctags -n --line−directives=1 *
ctags -n --line−directives="" *
ctags -n --line−directives= *
ctags -n --line−directives *
ctags -n --line−directives=no * :: przetwarzanie dyrektywy #line wyłączone
ctags -n --line−directives=off *
ctags -n --line−directives=0 *
ctags -n *
ctags -n --line−directives=yes --line−directives=no * :: przetwarzanie dyrektywy #line wyłączone
ctags -n --line−directives=no --line−directives=yes * :: przetwarzanie dyrektywy #line włączone
ctags -n --line−directives=yes test.js --line−directives=no test.html :: przetwarzanie dyrektywy #line włączone dla pliku 'test.js' i wyłączone dla pliku 'test.html'
:: Błędne przypadki
ctags --line−directives
ctags --line−directives=cos
ctags --line−directives=" "
Pasek społecznościowy