Exuberant Ctags#
Program ctags#
--languages#
Argument --languages
dla bieżącego wywołania programu ctags kontroluje stanem włączenia/wyłączenia poszczególnych języków spośród wszystkich obsługiwanych języków (zarówno tych pochodzących z wbudowanych parserów, jak i tych z własnych wyrażeń regularnych), które będą brane pod uwagę przy generowaniu tagów dla analizowanych plików.
Opis działania#
Prawidłowe użycie argumentu najlepiej objaśnić na zapisie składniowym:
ctags --languages[=[+|-]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 tekstowych wpływająca na stan włączenia/wyłączenia poszczególnych języków (wielkość znaków nie ma znaczenia tylko w przypadku identyfikatorów języków):
"all"
- specjalna wartość oznaczająca wszystkie obsługiwane języki, które w bieżącym wywołaniu programu ctags mogą zostać (zależnie od sposobu zapisu tej wartości) włączone lub wyłączone przy generowaniu tagów dla analizowanych plików. Użycie tej wartości jako"all"
lub"+all"
stanowi domyślne zachowanie i jest ono równoznaczne z brakiem przekazania argumentu--languages
lub z jego przekazaniem bez jakiejkolwiek wartości lub z pustą wartością""
."list"
- lista identyfikatorów spośród wszystkich obsługiwanych języków w bieżącym wywołaniu programu ctags, które zostaną (zależnie od sposobu zapisu tych identyfikatorów) włączone lub wyłączone przy generowaniu tagów dla analizowanych plików. Separatorem między identyfikatorami na liście jest znak przecinka (bez otaczania go dodatkowymi spacjami)."+"
lub"-"
- dodatkowe prefiksy w postaci znaku plusa lub minusa umieszczane przed wartościami w argumencie--languages
, które kontrolują stanem włączenia/wyłączenia poszczególnych języków spośród wszystkich obsługiwanych języków. Znak plusa włącza a znak minus wyłącza wszystkie te języki, które za nim występują. Jeśli pierwszy język na przekazanej liście nie zostanie poprzedzony znakiem plusa lub minusa to wszystkie obsługiwane języki są wyłączone. Do momentu napotkania znaku minusa w przekazanej liście każdy umieszczony w niej język pozostaje włączony. W ten sposób łatwo jest włączać/wyłączać wszystkie obsługiwane języki za jednym zamachem, albo włączać/wyłączać tylko niektóre z nich. Oto kilka przykładowych wywołań programu ctags z wykorzystaniem lub pominięciem tych prefiksów:"ctags --languages"
lub"ctags --languages="
lub"ctags --languages=-all"
lub"ctags --languages=all,-all"
lub"ctags --languages=-all,all"
- wyłączenie wszystkich obsługiwanych języków."ctags --languages=all"
lub"ctags --languages=+all"
lub"ctags --languages=-all,+all"
- włączenie wszystkich obsługiwanych języków."ctags --languages=-all,+c,java"
lub"ctags --languages=c,java"
lub"ctags --languages=c,+java"
- wyłączenie wszystkich obsługiwanych języków, a potem włączenie tylko języków C i Java."ctags --languages=-c,java"
lub"ctags --languages=-c,-java"
- wyłączenie tylko języków C i Java (reszta obsługiwanych języków pozostaje włączona).
- 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).
Przy domyślnych ustawieniach wszystkie obsługiwane języki (z wbudowanych parserów i/lub z własnych wyrażeń regularnych) są włączone i biorą udział przy generowaniu tagów dla analizowanych plików (zarówno dla automatycznego doboru właściwego języka, jaki i konkretnego języka wskazanego argumentem --language-force
). Za pomocą argumentu --languages
można dowolnie włączać lub wyłączać poszczególne języki spośród wszystkich obsługiwanych języków. Stan wyłączenia dla wszystkich obsługiwanych języków można zweryfikować za pomocą argumentu --list-languages
, który za identyfikatorem pomijanego języka wyświetli dopisek "[disabled]"
.
Argument --languages
można podawać wielokrotnie (separatorem jest spacja), i każdy kolejny będzie miał wpływ tylko na te argumenty, które występują bezpośrednio po nim. Przekazanie argumentu --languages
bez podania jakiejkolwiek wartości lub z pustą wartością ""
jest równoważne z niejawnym użyciem wartości "all"
. Jeśli wartością będzie identyfikator nieobsługiwanego języka to zwrócony zostanie komunikat ctags: Warning: Unknown language "xxx" in ""languages"" option
.
Prosty przykład:
ctags --languages=all --list-languages :: wszystkie obsługiwane języki włączone
ctags --languages=+all --list-languages :: wszystkie obsługiwane języki włączone
ctags --list-languages :: wszystkie obsługiwane języki włączone
ctags --languages=-all --list-languages :: wszystkie obsługiwane języki wyłączone
ctags --languages="" --list-languages :: wszystkie obsługiwane języki wyłączone
ctags --languages= --list-languages :: wszystkie obsługiwane języki wyłączone
ctags --languages --list-languages :: wszystkie obsługiwane języki wyłączone
ctags --languages=all,+all --list-languages :: wszystkie obsługiwane języki włączone
ctags --languages=+all,all --list-languages :: wszystkie obsługiwane języki włączone
ctags --languages=-all,+all --list-languages :: wszystkie obsługiwane języki włączone
ctags --languages=-all --languages=all --list-languages :: wszystkie obsługiwane języki włączone
ctags --languages=all,-all --list-languages :: wszystkie obsługiwane języki wyłączone
ctags --languages=-all,all --list-languages :: wszystkie obsługiwane języki wyłączone
ctags --languages=all --languages=-all --list-languages :: wszystkie obsługiwane języki wyłączone
ctags --languages=-all,+c,java --list-languages :: wyłączenie wszystkich obsługiwanych języków oraz włączenie języków C i Java
ctags --languages=c,java --list-languages :: wyłączenie wszystkich obsługiwanych języków oraz włączenie języków C i Java
ctags --languages=c,+java --list-languages :: wyłączenie wszystkich obsługiwanych języków oraz włączenie języków C i Java
ctags --languages=-c,java --list-languages :: wyłączenie języków C i Java (reszta obsługiwanych języków włączona)
ctags --languages=-c,-java --list-languages :: wyłączenie języków C i Java (reszta obsługiwanych języków włączona)
ctags --languages * --list-languages :: wyłącza wszystkie języki i nie przetworzy żadnego pliku
ctags --languages --language−force=c * --list-languages :: wyłącza wszystkie języki i nie przetworzy żadnego pliku
ctags --languages=c --language−force=c * --list-languages :: wyłącza wszystkie języki prócz C i używa go do wszystkich plików
ctags --language=-c,java test.js --language=html test.html :: mieszane włączenie/wyłączenie poszczególnych języków dla kolejnych plików
:: Błędne przypadki
ctags -languages
ctags --languages=ALL
ctags --languages=cos
ctags --languages=" "