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 or view it on GitHub:
https://github.com/geany/geany/issues/3454#issuecomment-1503846234
You are receiving this because you are subscribed to this thread.

Message ID: <geany/geany/issues/3454/1503846...@github.com>

Reply via email to