Exuberant Ctags#
Program ctags#
Konfiguracja#
Można sterować działaniem programu ctags poprzez jedno z poniższych rozwiązań (każde kolejne rozwiązanie przesłania ustawienia poprzedniego):
- domyślne pliki konfiguracyjne
- zmienne środowiskowe
- argumenty przekazane bezpośrednio przy wywołaniu programu ctags
Za pomocą argumentu --options=NONE
można wyłączyć automatyczne pobieranie ustawień z domyślnych plików konfiguracyjnych i zmiennych środowiskowych.
Pliki konfiguracyjne#
Można sterować działaniem programu ctags w sposób bardziej kompleksowy poprzez pliki konfiguracyjne. W zależności od sposobu odczytu lub przekazania tych plików do programu ctags wyróżniamy dwa rodzaje plików konfiguracyjnych:
domyślne pliki konfiguracyjne # - jeśli program ctags został uruchomiony bez inicjującego argumentu w postaci
--options=NONE
to spróbuje on pobrać wstępną konfigurację z następujących plików (każdy kolejny plik przesłania ustawienia poprzedniego):/ctags.cnf
(tylko na systemach z rodziny MS-DOS/Windows) - plik konfiguracyjny znajduje się w folderze najwyższego poziomu (tj. korzeniu), który zawiera bieżący folder roboczy (np. na partycji"C:\"
lub"D:\"
)./etc/ctags.conf
/usr/local/etc/ctags.conf
$HOME/.ctags
$HOME/ctags.cnf
(tylko na systemach z rodziny MS-DOS/Windows).ctags
- plik konfiguracyjny znajduje się w bieżącym folderze roboczym.ctags.cnf
(tylko na systemach z rodziny MS-DOS/Windows) - plik konfiguracyjny znajduje się w bieżącym folderze roboczym.
- dodatkowe pliki konfiguracyjne # - za pomocą argumentu
--options
lub-L
można przekazać dodatkowe pliki konfiguracyjne, których nazwa czy lokalizacja nie musi spełniać restrykcji z domyślnych plików konfiguracyjnych. Argument--options
może wystąpić wielokrotnie w każdym z trzech wariantów konfiguracyjnych.
Plik konfiguracyjny # to zwykły plik tekstowy z opcjonalnym rozszerzeniem, w którym umieszczamy identyczne argumenty i wartości, jakie przekazuje się przy wywołaniu programu ctags (z drobnymi wyjątkami). Każdy taki argument zajmuje pojedynczą linię. Można rozdzielać poszczególne argumenty dowolną ilością pustych linii. Prosty przykład:
--sort=no --exclude=plik2.js --exclude=folderA --config=cfg1 --langdef=less --langmap=less:.less --config=cfg2 -L=files
Komentarze#
W plikach konfiguracyjnych dla programu ctags z projektu Exuberant Ctags nie przewidziano komentarzy. Jeśli komuś bardzo zależy na komentowaniu linii to może użyć jednego z poniższych sposobów:
- Można utworzyć odrębny plik konfiguracyjny (np. z nazwą
.ctags.readme
) zawierający komentarze i potem przepuścić go przez jakieś narzędzie, które usunie te komentarze. W zależności od sytuacji całość można zautomatyzować własnym skryptem. Można umieścić w pliku konfiguracyjnym taki argument, którego wartość będzie robiła za komentarz, ale nigdy nie wpłynie na postać generowanego pliku indeksu. Idealnie sprawdza się ciąg w stylu
"--regex-C=/$x/x/x/e/"
, za którym umieszczamy nasz komentarz. Prosty przykład:--regex-C=/$x/x/x/e/ // Jakiś komentarz z działającym znakiem `/` --regex-C=/$x/x/x/e/ # Źródlo http://stackoverflow.com/questions/10973224/how-to-add-comments-to-an-exuberant-ctags-config-file --regex-C=/$x/x/x/e/ ; Można dodać dowolny tekst jaki chcemy
Zmienne środowiskowe#
Program ctags pobiera wstępną konfigurację z następujących zmiennych środowiskowych:
- CTAGS - zawiera ustawienia dla programu uruchomionego w domyślnym trybie ctags lub w trybie etags (jeśli brakuje zmiennej
ETAGS
). Wszystkie białe znaki w wartości tej zmiennej są traktowane jak separator między poszczególnymi argumentami, co uniemożliwia przekazanie tych argumentów, w których wartości zawierają spacje. W razie potrzeby należy skorzystać z plików konfiguracyjnych. - ETAGS - jak wyżej, ale ustawienia z tej zmiennej zostaną użyte w przypadku uruchomienia programu w trybie etags. Jeśli zmienna
ETAGS
nie zostanie odnaleziona po uruchomieniu programu w trybie etags to użyte zostaną ustawienia ze zmiennejCTAGS
(jeśli zmienna istnieje). TMPDIR - w systemach Uniksowych, gdzie dostępna jest funkcja
mkstemp()
, wartość tej zmiennej określa folder, w którym należy umieszczać pliki tymczasowe. Może się to przydać w sytuacji, kiedy rozmiar pliku tymczasowego staje się zbyt duży, aby zmieścił się na partycji zawierającej domyślny katalog tymczasowy zdefiniowany w czasie kompilacji. Program ctags tworzy pliki tymczasowe w następujących sytuacjach:- Kiedy program został uruchomiony w trybie etags.
- Kiedy plik indeksu jest wysyłany do standardowego wyjścia.
- Kiedy skompilowano program z nakazem używania wewnętrznego algorytmu sortującego tagi w pliku indeksu, zamiast narzędzia sortującego oferowanego przez system operacyjny. Jeśli używane jest systemowe narzędzie sortujące to na ogół zmienna ta również jest brana pod uwagę.
Jeśli program ctags ma ustawiony atrybut
setuid
(WikiEN, WikiPL) to wartość zmiennejTMPDIR
zostanie zignorowana.
Zmienną środowiskową można ustawić na stałe w opcjach Windowsa lub tymczasowo jeszcze przed uruchomieniem programu ctags. Prosty przykład z tymczasowym ustawieniem zmiennej CTAGS
:
set CTAGS=--sort=no --exclude=plik2.js --exclude=folderA --langdef=less --langmap=less:.less ctags -R