`if [[ $(type -t "editions_${OS}") == function ]]; then`
showing this line as function in symbols, even it isn't really function. Wasn't like that in older version
The `sh` parser was swapped to the ctags parser from the Geany one.
`function` and other keywords are actually only keywords at the start of a command (for bash and zsh at least). But the ctags `sh` parser is pretty simple and does not track start of command. Detecting command start might not be simple since they can be embedded.
That said there are some changes around `function` in the ctags parser that are newer than the one in Geany, but not sure if they will help.
@techee maybe add `sh` to the list of parsers that need to be updated, especially to get the excellent work of @b4n ;-)
Current universal-ctags still suffers from the issue.
Detecting command start might not be simple since they can be embedded.
It is not trivial indeed. And the other solution of being stricter parsing `function …` is tricky as well because the syntax is actually fairly complex (e.g. `function @(cat)` is perfectly valid Bash -- just learnt that though).
I think this should be forwarded upstream anyway though.
github-comments@lists.geany.org