본문 바로가기
IT/linux

ctags 지원 언어 목록 / list-language, list-map, languages

by 어느해겨울 2022. 9. 5.

 

ctags 옵션에 이어서 언어에 관련된 옵션들을 살펴본다.

 

ctags 옵션 / recursive, only c, c++, exclude

ctags 생성 응용 C/C++ 언어만 지정 경로로부터 recursive 하게 tagging하여 tag 수행 시간과 용량을 출력한다. 해당 경로는 필요에 따라 변경하여 사용한다. (time ctags -R --languages=C,C++ ~/. \ /usr/local..

muabow.tistory.com

 

1. --list-languages

ctags에서 인식하는 언어 목록을 나타낸다.

$ ctags --list-languages
Ant
Asm
Asp
Awk
Basic
BETA
C
C++
C#
Cobol
CSS
DosBatch
Eiffel
Erlang
Flex
Fortran
HTML
Java
JavaScript
Lisp
Lua
Make
MatLab
OCaml
Pascal
Perl
PHP
Python
REXX
Ruby
Scheme
Sh
SLang
SML
SQL
Tcl
Tex
Vera
Verilog
VHDL
Vim
YACC


2. --list-maps

ctags에서 인식하는 언어에 mapping 된 파일의 확장자 목록을 나타낸다.

$ ctags --list-maps
Ant      *.build.xml
Asm      *.asm *.ASM *.s *.S *.A51 *.29[kK] *.[68][68][kKsSxX] *.[xX][68][68]
Asp      *.asp *.asa
Awk      *.awk *.gawk *.mawk
Basic    *.bas *.bi *.bb *.pb
BETA     *.bet
C        *.c
C++      *.c++ *.cc *.cp *.cpp *.cxx *.h *.h++ *.hh *.hp *.hpp *.hxx *.C *.H
C#       *.cs
Cobol    *.cbl *.cob *.CBL *.COB
CSS      *.css
DosBatch *.bat *.cmd
Eiffel   *.e
Erlang   *.erl *.ERL *.hrl *.HRL
Flex     *.as *.mxml
Fortran  *.f *.for *.ftn *.f77 *.f90 *.f95 *.F *.FOR *.FTN *.F77 *.F90 *.F95
HTML     *.htm *.html
Java     *.java
JavaScript *.js
Lisp     *.cl *.clisp *.el *.l *.lisp *.lsp
Lua      *.lua
Make     *.mak *.mk [Mm]akefile GNUmakefile
MatLab   *.m
OCaml    *.ml *.mli
Pascal   *.p *.pas
Perl     *.pl *.pm *.plx *.perl
PHP      *.php *.php3 *.phtml
Python   *.py *.pyx *.pxd *.pxi *.scons
REXX     *.cmd *.rexx *.rx
Ruby     *.rb *.ruby
Scheme   *.SCM *.SM *.sch *.scheme *.scm *.sm
Sh       *.sh *.SH *.bsh *.bash *.ksh *.zsh
SLang    *.sl
SML      *.sml *.sig
SQL      *.sql
Tcl      *.tcl *.tk *.wish *.itcl
Tex      *.tex
Vera     *.vr *.vri *.vrh
Verilog  *.v
VHDL     *.vhdl *.vhd
Vim      *.vim
YACC     *.y

 

3. --languages

--languages=C,C++ 은 지원하는 목록 중에서 C와 C++ 언어만 활성화하겠다는 의미이다.

ctags --languages=C,C++ --list-languages
Ant [disabled]
Asm [disabled]
Asp [disabled]
Awk [disabled]
Basic [disabled]
BETA [disabled]
C
C++
C# [disabled]
Cobol [disabled]
CSS [disabled]
DosBatch [disabled]
Eiffel [disabled]
Erlang [disabled]
Flex [disabled]
Fortran [disabled]
HTML [disabled]
Java [disabled]
JavaScript [disabled]
Lisp [disabled]
Lua [disabled]
Make [disabled]
MatLab [disabled]
OCaml [disabled]
Pascal [disabled]
Perl [disabled]
PHP [disabled]
Python [disabled]
REXX [disabled]
Ruby [disabled]
Scheme [disabled]
Sh [disabled]
SLang [disabled]
SML [disabled]
SQL [disabled]
Tcl [disabled]
Tex [disabled]
Vera [disabled]
Verilog [disabled]
VHDL [disabled]
Vim [disabled]
YACC [disabled]

 

위의 language list와 map list 그리고 활성/비활성 여부가 필요한 경우는 특정 ctags를 사용하여 TAG를 생성할 때 모든 파일을 대상으로 하지 않고 확장자를 특정하기 위해 사용된다.

 

--languages=C,C++ 옵션을 선택하면 아래 블록에 있는 확장자만 TAG를 진행하게 된다는 의미이다.

C        *.c
C++      *.c++ *.cc *.cp *.cpp *.cxx *.h *.h++ *.hh *.hp *.hpp *.hxx *.C *.H

이점으로는 TAG 생성의 속도적 향상을 얻을 수 있고 TAG 추적 시 같은 언어의 키워드만 추적하여 정확도를 올릴 수 있다.

 

 

'IT > linux' 카테고리의 다른 글

gcc warning case 정리  (0) 2022.09.05
ClearCase 개요와 활용  (0) 2022.09.05
ctags 옵션 / recursive, only c, c++, exclude  (0) 2022.09.04
RHEL HOME/END key bind  (0) 2022.09.04
csh stderr redirection  (0) 2022.09.04

댓글