Good catch!
The problem is actually #3268. After a closer inspection the ctags "local" flag detection isn't very profound - it checks source file names and if the file name has a header extension, then the flag is non-local, otherwise it's local. So for the *.foo
extension, it's assumed to be a C source where xx_foo
is local just for the file, which is wrong.
Another problem would be when a user has two files open, such as foo.c
and bar.c
and doesn't use anything like ProjectOrganizer that would parse also the corresponding headers. Then symbols from foo.c
won't be visible in bar.c
.
So while it's nice that #3268 reduces the number of possibly invalid autocompletion symbols, it's not good in its current form. We could either revert it completely or modify it a bit to honor the local
flag only in cases where we can be absolutely sure the given symbol won't leave the current file (such as static declarations). I'll try to play with it a little.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.