PL/SQL is supported by ctags per the documentation mentioned here. However I can't get it working properly. Particularly I found tags were not generated for some of the functions. So I was reading through the ctags manaual looking for the answer and then I saw this:


After I ran it I got this:

ctags --list-kinds=SQL
c  cursors
d  prototypes [off]
f  functions
F  record fields
l  local variables [off]
L  block label
P  packages
p  procedures
r  records [off]
s  subtypes
t  tables
T  triggers
v  variables
i  indexes
e  events
U  publications
R  services
D  domains
V  views
n  synonyms
x  MobiLink Table Scripts
y  MobiLink Conn Scripts

So prototypes are disabled by default. That looks promising. I enabled it by doing this:

ctags --SQL-kinds=+dr --language-force=SQL *.*

And All the tags are generated properly!