Re: [Ctags] Same extension ?
Brought to you by:
dhiebert
From: Elliott H. <en...@je...> - 2007-09-29 16:13:16
|
On Sat, 2007-09-29 at 12:32 +0200, Elias Pschernig wrote: > On Fri, 2007-09-28 at 22:23 -0500, Darren Hiebert wrote: > > > Yes, it is only possible for an extension to (automatically) map to > > one language. I can't think of a way around this. But the current > > mapping is not set in stone. But before changing it, I would like for > > us to do a little research on where .ml is used and how commonly. I > > appeal to the others on this list to help me, as I really need the help. > > We could of course try to add some kind of optional detection feature to > parsers. That is, just give (some) parsers another method, which returns > whether the given source is in their language or not. Then for an > extension which corresponds to multiple parsers, first one could be > tried, and if its detection method returns false, the other one. I think > there could be more cases where it might matter, e.g. .pl is used for > Perl as well as Prolog (which is likely not in use anymore), or > different BASIC dialects all use .bas (but likely could be handled by a > single parser, with the auto-detection built into it). yeah, that's how Vim deals with the handful of ambiguous cases. but there really aren't that many. as you point out, different dialects using the same extension is more common, and that's a job for the same parser anyway. and then there are mixed-language files. i think bringing our extensions into line with Vim, as in the bug i raised, is a good first step and gives us most of the benefit for little of the work. i'll prepare a patch this afternoon (unless someone does it this morning; all the details are in the bug), show it here, and if none of the other maintainers complain, i'll commit it. annoyingly, i was sure i'd explicitly noted which extensions Vim had to treat specially, but there don't seem to be any comments to the bug. maybe that means that none of them were languages Ctags supports? probably worth checking again, though. > Also, for files without any extension, like makefiles or scons build > scripts or just shell scripts, it would make sense to parse for Bash and > Python and some others (the first line of such a file usually is enough > to detect the correct one) by default. ctags already does this. > It would be nice if an editor > would have correct tags for such files even though they don't have any > extension. in real life, the editor probably has to work out the file's language itself, in which case it's convenient to just tell ctags what language to use. (http://software.jessies.org/evergreen/ works like this.) a bigger problem for editors, in my opinion, is that every language gets to choose its own kind letters, so to know what a tag is, you need to remap all the kinds to an internal set of kinds. --elliott |