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#linedla generowanych tagów."no","off"lub"0"- przetwarzanie dyrektywy#linedla 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−directivesmoż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
#linew 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
#linewpływa na postać generowanych tagów znajdujących się za tą dyrektywą (tj. na ich poletagfileitagaddress) 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--excmdlub-n. - Argument
--line−directivesdział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ę#linenie jest skojarzony z żadnym obsługiwanym językiem to można skorzystać z argumentów--langmaplub--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