自定义 ctags 以支持Go语言(其他语言)

风行水上 @ 2015-03-22 12:02:14
标签:

    当前的ctags稳定版本是5.8,默认不支持Go语言。

    $ ctags --version
    Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
      Compiled: Jul  9 2009, 17:05:35
      Addresses: <[email protected]>, http://ctags.sourceforge.net
      Optional compiled features: +win32, +regex, +internal-sort
    

    在文件"~/.ctags"中增加以下配置以支持Go语言:

    # File: ~/.ctags
    
    --langdef=Go
    --langmap=Go:.go
    --regex-Go=/func([ \t]+\([^)]+\))?[ \t]+([a-zA-Z0-9_]+)/\2/f,func/
    --regex-Go=/var[ \t]+([a-zA-Z_][a-zA-Z0-9_]+)/\1/v,var/
    --regex-Go=/type[ \t]+([a-zA-Z_][a-zA-Z0-9_]+)/\1/t,type/
    

    Ref: http://stackoverflow.com/questions/8204367/ctag-database-for-golang

    ctags 5.8 默认配置

    支持的文件后缀和类型:

    $ ctags --list-languages
    
    $ ctags --list-maps
    
    $ ctags --list-kinds
    

    默认支持的语言:

    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#       *.cs
    Cobol    *.cbl *.cob *.CBL *.COB
    DosBatch *.bat *.cmd
    Eiffel   *.e
    Erlang   *.erl *.ERL *.hrl *.HRL
    Flex     *.as *.mxml
    Fortran  *.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
    Go       *.go
    
    标签:

      分享到:
      comments powered by Disqus

      28/20ms