preservim / tagbar

Vim plugin that displays tags in a window, ordered by scope
https://preservim.github.io/tagbar
Other
6.12k stars 486 forks source link

tagbar error with golang files #573

Closed yedamao closed 4 years ago

yedamao commented 4 years ago

Tagbar window is empty on golang file.

Below is the tagbardebug.log


VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Dec 12 2019 16:52:17)
macOS version
Compiled by Homebrew
Huge version without GUI.  Features included (+) or not (-):
+acl               +cmdline_info      -farsi             +libcall           -mouse_sysmouse    -python            -tag_old_static    +visual
+arabic            +comments          +file_in_path      +linebreak         +mouse_urxvt       +python3           -tag_any_white     +visualextra
+autocmd           +conceal           +find_in_path      +lispindent        +mouse_xterm       +quickfix          -tcl               +viminfo
+autochdir         +cryptv            +float             +listcmds          +multi_byte        +reltime           +termguicolors     +vreplace
-autoservername    +cscope            +folding           +localmap          +multi_lang        +rightleft         +terminal          +wildignore
-balloon_eval      +cursorbind        -footer            +lua               -mzscheme          +ruby              +terminfo          +wildmenu
+balloon_eval_term +cursorshape       +fork()            +menu              +netbeans_intg     +scrollbind        +termresponse      +windows
-browse            +dialog_con        +gettext           +mksession         +num64             +signs             +textobjects       +writebackup
++builtin_terms    +diff              -hangul_input      +modify_fname      +packages          +smartindent       +textprop          -X11
+byte_offset       +digraphs          +iconv             +mouse             +path_extra        -sound             +timers            -xfontset
+channel           -dnd               +insert_expand     -mouseshape        +perl              +spell             +title             -xim
+cindent           -ebcdic            +job               +mouse_dec         +persistent_undo   +startuptime       -toolbar           -xpm
-clientserver      +emacs_tags        +jumplist          -mouse_gpm         +popupwin          +statusline        +user_commands     -xsmp
+clipboard         +eval              +keymap            -mouse_jsbterm     +postscript        -sun_workshop      +vartabs           -xterm_clipboard
+cmdline_compl     +ex_extra          +lambda            +mouse_netterm     +printer           +syntax            +vertsplit         -xterm_save
+cmdline_hist      +extra_search      +langmap           +mouse_sgr         +profile           +tag_binary        +virtualedit       
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
  fall-back for $VIM: "/usr/local/share/vim"
Compilation: clang -c -I. -Iproto -DHAVE_CONFIG_H   -DMACOS_X -DMACOS_X_DARWIN  -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1       
Linking: clang   -L. -fstack-protector-strong -L/usr/local/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/openssl@1.1/lib -L/usr/local/opt/readline/lib  -L/usr/local/lib -o vim        -lncurses -liconv -lintl -framework AppKit  -L/usr/local/opt/lua/lib -llua5.3 -mmacosx-version-min=10.15 -fstack-protector-strong -L/usr/local/lib  -L/usr/local/Cellar/perl/5.30.0/lib/perl5/5.30.0/darwin-thread-multi-2level/CORE -lperl -lm -lutil -lc  -L/usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/config-3.7m-darwin -lpython3.7m -framework CoreFoundation  -lruby.2.6     2019-12-31 13:37:46.680115: ToggleWindow called
2019-12-31 13:37:46.680568: OpenWindow called with flags: ''
2019-12-31 13:37:46.707126: AutoUpdate called [/Users/damao/initials-avatar/__Tagbar__.1]
2019-12-31 13:37:46.707282: Still opening window, stopping processing
2019-12-31 13:37:46.715622: InitWindow called with autoclose: 0
2019-12-31 13:37:46.726467: AutoUpdate called [/Users/damao/initials-avatar/__Tagbar__.1]
2019-12-31 13:37:46.726641: In Tagbar window, stopping processing
2019-12-31 13:37:46.729599: Mapping keys
2019-12-31 13:37:46.730682: InitWindow finished
2019-12-31 13:37:46.730821: Removing fileinfo for [/Users/damao/initials-avatar/draw.go]
2019-12-31 13:37:46.731043: AutoUpdate called [/Users/damao/initials-avatar/draw.go]
2019-12-31 13:37:46.731251: Vim filetype: 'go', sanitized filetype: 'go'
2019-12-31 13:37:46.731348: Checking if file is valid [/Users/damao/initials-avatar/draw.go]
2019-12-31 13:37:46.731559: New file, processing [/Users/damao/initials-avatar/draw.go]
2019-12-31 13:37:46.731651: ProcessFile called [/Users/damao/initials-avatar/draw.go]
2019-12-31 13:37:46.731911: Checking if file is valid [/Users/damao/initials-avatar/draw.go]
2019-12-31 13:37:46.732488: typeinfo for file to process: {'ctagstype': 'go', 'ftype': 'go', 'kinddict': {'p': 0, 's': 3, 'c': 2, 't': 5, 'v': 7, 'f': 6, 'i': 1, 'm': 4, '?': 8}, 'sro': '.', 'createKinddict': function('<SNR>83_createKinddict'), 'getKind': function('<SNR>83_getKind'), 'kind2scope': {'s': 'struct', '?': 'unknown'}, 'scope2kind': {'struct': 's'}, 'kinds': [{'short': 'p', 'long': 'packages', 'fold': 0, 'stl': 0}, {'short': 'i', 'long': 'interfaces', 'fold': 0, 'stl': 0}, {'short': 'c', 'long': 'constants', 'fold': 0, 'stl': 0}, {'short': 's', 'long': 'structs', 'fold': 0, 'stl': 1}, {'short': 'm', 'long': 'struct members', 'fold': 0, 'stl': 0}, {'short': 't', 'long': 'types', 'fold': 0, 'stl': 1}, {'short': 'f', 'long': 'functions', 'fold': 0, 'stl': 1}, {'short': 'v', 'long': 'variables', 'fold': 0, 'stl': 0}, {'short': '?', 'long': 'unknown', 'fold': 0, 'stl': 1}]}
2019-12-31 13:37:46.732677: Caching file into: /var/folders/1b/mxb3w_314g70fwbvwh0_ztkr0000gn/T/vsy1OaJ/15.go
2019-12-31 13:37:46.745146: ExecuteCtagsOnFile called [/var/folders/1b/mxb3w_314g70fwbvwh0_ztkr0000gn/T/vsy1OaJ/15.go]
2019-12-31 13:37:46.745713: EscapeCtagsCmd called
2019-12-31 13:37:46.745884: ctags_bin: /usr/local/bin/ctags
2019-12-31 13:37:46.746160: ctags_args (is a list): ['--extra=', '-f', '-', '--format=2', '--excmd=pattern', '--fields=nksSaf', '--file-scope=yes', '--sort=no', '--append=no', '-V', '--language-force=go', '--go-kinds=picsmtfv']
2019-12-31 13:37:46.746592: Escaped ctags command: '/usr/local/bin/ctags' '--extra=' '-f' '-' '--format=2' '--excmd=pattern' '--fields=nksSaf' '--file-scope=yes' '--sort=no' '--append=no' '-V' '--language-force=go' '--go-kinds=picsmtfv' '/var/folders/1b/mxb3w_314g70fwbvwh0_ztkr0000gn/T/vsy1OaJ/15.go'
2019-12-31 13:37:46.746820: Executing ctags command: '/usr/local/bin/ctags' '--extra=' '-f' '-' '--format=2' '--excmd=pattern' '--fields=nksSaf' '--file-scope=yes' '--sort=no' '--append=no' '-V' '--language-force=go' '--go-kinds=picsmtfv' '/var/folders/1b/mxb3w_314g70fwbvwh0_ztkr0000gn/T/vsy1OaJ/15.go'
2019-12-31 13:37:46.765051: Calling shell to execute: "('/usr/local/bin/ctags' '--extra=' '-f' '-' '--format=2' '--excmd=pattern' '--fields=nksSaf' '--file-scope=yes' '--sort=no' '--append=no' '-V' '--language-force=go' '--go-kinds=picsmtfv' '/var/folders/1b/mxb3w_314g70fwbvwh0_ztkr0000gn/T/vsy1OaJ/15.go')>/var/folders/1b/mxb3w_314g70fwbvwh0_ztkr0000gn/T/vsy1OaJ/16 2>&1"
2019-12-31 13:37:46.765303: Exit code: 1
2019-12-31 13:37:46.787203: Command output:
2019-12-31 13:37:46.787693: ctags: Unknown language "go" in "language-force" option
  Option: --language-force=go

2019-12-31 13:37:46.787968: Exit code: 1
            2019-12-31 13:37:46.788543: Ctags error when processing file
2019-12-31 13:37:46.788780: fileinfo empty after processing [/Users/damao/initials-avatar/draw.go]
2019-12-31 13:37:46.801417: AutoUpdate called [/Users/damao/initials-avatar/draw.go]
2019-12-31 13:37:46.801692: Vim filetype: 'go', sanitized filetype: 'go'
2019-12-31 13:37:46.801879: Checking if file is valid [/Users/damao/initials-avatar/draw.go]
2019-12-31 13:37:46.802352: File data outdated, updating [/Users/damao/initials-avatar/draw.go]
2019-12-31 13:37:46.802491: ProcessFile called [/Users/damao/initials-avatar/draw.go]
2019-12-31 13:37:46.802714: Checking if file is valid [/Users/damao/initials-avatar/draw.go]
2019-12-31 13:37:46.803864: typeinfo for file to process: {'ctagstype': 'go', 'ftype': 'go', 'kinddict': {'p': 0, 's': 3, 'c': 2, 't': 5, 'v': 7, 'f': 6, 'i': 1, 'm': 4, '?': 8}, 'sro': '.', 'createKinddict': function('<SNR>83_createKinddict'), 'getKind': function('<SNR>83_getKind'), 'kind2scope': {'s': 'struct', '?': 'unknown'}, 'scope2kind': {'struct': 's'}, 'kinds': [{'short': 'p', 'long': 'packages', 'fold': 0, 'stl': 0}, {'short': 'i', 'long': 'interfaces', 'fold': 0, 'stl': 0}, {'short': 'c', 'long': 'constants', 'fold': 0, 'stl': 0}, {'short': 's', 'long': 'structs', 'fold': 0, 'stl': 1}, {'short': 'm', 'long': 'struct members', 'fold': 0, 'stl': 0}, {'short': 't', 'long': 'types', 'fold': 0, 'stl': 1}, {'short': 'f', 'long': 'functions', 'fold': 0, 'stl': 1}, {'short': 'v', 'long': 'variables', 'fold': 0, 'stl': 0}, {'short': '?', 'long': 'unknown', 'fold': 0, 'stl': 1}]}
2019-12-31 13:37:46.804184: Caching file into: /var/folders/1b/mxb3w_314g70fwbvwh0_ztkr0000gn/T/vsy1OaJ/17.go
2019-12-31 13:37:46.814181: ExecuteCtagsOnFile called [/var/folders/1b/mxb3w_314g70fwbvwh0_ztkr0000gn/T/vsy1OaJ/17.go]
2019-12-31 13:37:46.814486: EscapeCtagsCmd called
2019-12-31 13:37:46.814596: ctags_bin: /usr/local/bin/ctags
2019-12-31 13:37:46.814935: ctags_args (is a list): ['--extra=', '-f', '-', '--format=2', '--excmd=pattern', '--fields=nksSaf', '--file-scope=yes', '--sort=no', '--append=no', '-V', '--language-force=go', '--go-kinds=picsmtfv']
2019-12-31 13:37:46.815382: Escaped ctags command: '/usr/local/bin/ctags' '--extra=' '-f' '-' '--format=2' '--excmd=pattern' '--fields=nksSaf' '--file-scope=yes' '--sort=no' '--append=no' '-V' '--language-force=go' '--go-kinds=picsmtfv' '/var/folders/1b/mxb3w_314g70fwbvwh0_ztkr0000gn/T/vsy1OaJ/17.go'
2019-12-31 13:37:46.816279: Executing ctags command: '/usr/local/bin/ctags' '--extra=' '-f' '-' '--format=2' '--excmd=pattern' '--fields=nksSaf' '--file-scope=yes' '--sort=no' '--append=no' '-V' '--language-force=go' '--go-kinds=picsmtfv' '/var/folders/1b/mxb3w_314g70fwbvwh0_ztkr0000gn/T/vsy1OaJ/17.go'
2019-12-31 13:37:46.830801: Calling shell to execute: "('/usr/local/bin/ctags' '--extra=' '-f' '-' '--format=2' '--excmd=pattern' '--fields=nksSaf' '--file-scope=yes' '--sort=no' '--append=no' '-V' '--language-force=go' '--go-kinds=picsmtfv' '/var/folders/1b/mxb3w_314g70fwbvwh0_ztkr0000gn/T/vsy1OaJ/17.go')>/var/folders/1b/mxb3w_314g70fwbvwh0_ztkr0000gn/T/vsy1OaJ/18 2>&1"
2019-12-31 13:37:46.831035: Exit code: 1
2019-12-31 13:37:46.856879: Command output:
2019-12-31 13:37:46.857103: ctags: Unknown language "go" in "language-force" option
  Option: --language-force=go

2019-12-31 13:37:46.857486: Exit code: 1
2019-12-31 13:37:46.857755: Ctags error when processing file
2019-12-31 13:37:46.857942: fileinfo empty after processing [/Users/damao/initials-avatar/draw.go]
2019-12-31 13:37:46.858145: OpenWindow finished
2019-12-31 13:37:46.858248: ToggleWindow finished
2019-12-31 13:37:47.852622: Closing Tagbar window due to QuitPre event
2019-12-31 13:37:47.852802: goto_win(): 1wincmd w, 1

Does anyone encounter the same problem?😭

alerque commented 4 years ago

Your system's version of ctags does not support go.

ctags: Unknown language "go"

You need to use universal-ctags or gotags in order to get usable tag output. If you search though old issues there are a number of places where this is talked about and various combinations that work are mentioned.

yedamao commented 4 years ago

@alerque Thanks

alerque commented 4 years ago

Let us know if you still can't resolve this, but make sure your ctags --version shows a copy of Universal Ctags (the Exuberant and BSD editions haven't been updated since before Go lang even existed) or setup gotags specifically and tell tagbar to run that explicitly for go files.

yedamao commented 4 years ago
let g:tagbar_type_go = {
    \ 'ctagstype' : 'go',
    \ 'kinds'     : [
        \ 'p:package',
        \ 'i:imports:1',
        \ 'c:constants',
        \ 'v:variables',
        \ 't:types',
        \ 'n:interfaces',
        \ 'w:fields',
        \ 'e:embedded',
        \ 'm:methods',
        \ 'r:constructor',
        \ 'f:functions'
    \ ],
    \ 'sro' : '.',
    \ 'kind2scope' : {
        \ 't' : 'ctype',
        \ 'n' : 'ntype'
    \ },
    \ 'scope2kind' : {
        \ 'ctype' : 't',
        \ 'ntype' : 'n'
    \ },
    \ 'ctagsbin'  : 'gotags',
    \ 'ctagsargs' : '-sort -silent'
\ }

I add above snippet to my .vimrc, It works fine.

alerque commented 4 years ago

You shouldn't need to do that even. What tag generator are you using?

yedamao commented 4 years ago

I installed

ctags

Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
  Compiled: Oct  6 2019, 20:31:35
  Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
  Optional compiled features: +wildcards, +regex

gotags

gotags version 1.4.1

and vim-go plugin.

casatwy commented 1 month ago

same problem: Tagbar window is empty on golang file

setting GOBIN in bash env solves problem in my case:

export GOBIN="`go env GOPATH`/bin"
export PATH="$PATH:$GOBIN"