Indeksowanie kodu#
Ctags#
Podstawowe informacje o projekcie Ctags można znaleźć w poniższych materiałach:
Oryginalny Ctags został wprowadzony w systemie operacyjnym BSD Unix 3.0 przez Kena Arnolda, przy wsparciu Jima Klecknera dla języka Fortran i przez Billa Joya dla języka Pascal. Stał się one częścią wstępnej wersji specyfikacji Single Unix Specification i XPG4 z 1992 roku.
Format tagu i pliku indeksu#
Składnia pojedynczego tagu zgodnego z formatem Ctags jest następująca:
{tagname}\t{tagfile}\t{tagaddress}
gdzie poszczególne człony oznaczają
- tagname - dowolny identyfikator (bez białych znaków).
\t
- dokładnie jeden znak tabulacji (\x0b
), choć niektóre edytory pozwalają stosować dowolną ilość białych znaków.- tagfile - ścieżka do pliku względem bieżącego folderu, w którym zdefiniowano tagname.
- tagaddress - polecenie trybu ex, które pozwoli edytorowi zlokalizować tagname. Może to być np. tylko numer linii lub wyrażenie regularne, co ma zabezpieczyć przed wykonaniem dowolnego polecenia.
W pliku stanowiącym indeks (domyślna nazwa tags
- beż żadnego rozszerzenia) może pojawić się dowolna liczba tagów, każdy w osobnej linii, i w celu zapewnienia szybszego wyszukiwania (binarnego) posortowanych względem identyfikatorów tagname
. Dopuszczalne jest powtarzanie się tych samych identyfikatorów, ale ze względu na binarne sortowanie nie ma pewności, który z nich zostanie użyty.
Na przestrzeni lat powstało wiele rozszerzeń do oryginalnego formatu Ctags i narzędzi generujących im prawidłowy plik indeksu. Z tych bardziej znanych można wymienić Etags, Hasktags, jsctags, Exuberant Ctags, Universal Ctags. Nie znalazłem dla Windowsa żadnego gotowego narzędzia dla pierwotnego Ctags dlatego też jego opis zakańczam właśnie w tym miejscu.