Hello, I've adapted Exuberant Ctags to: - allow "-" in function names, - recognize variables defined with typeset, local, float, etc., with options used - recognize variable declarations that are multiple in one line and with initialization Source: https://github.com/psprint/zcommodore/tree/master/myctags The commits that I refer to: https://github.com/psprint/zcommodore/commits?author=psprint&since=2016-09-01T00:00:00+02:00&until=2016-09-18T19:12:08+02:00 TODO is to add Vim and Emacs mode-line recognition, so that files without extensions are nicely parsed. Currently one has to use "--langmap=sh:.,sh:+.sh" option for that. Ex. Ctags already has something similar – it looks at #! shebang to determine language, so this should be easy. Attached is screenshot of an example generated tags file. Best regards, Sebastian Gniazdowski