9 Apr 2010 11:04
Re: Announce: hothasktags
Peter Hercek <phercek <at> gmail.com>
2010-04-09 09:04:46 GMT
2010-04-09 09:04:46 GMT
On 04/08/2010 01:09 AM, Luke Palmer wrote: > On Wed, Apr 7, 2010 at 1:23 AM, Evan Laforge<qdunkan <at> gmail.com> wrote: > > >> Derive.PitchDeriver Derive/Derive.hs 98;" file:Cmd/Cmd.hs >> Derive.PitchDeriver Derive/Derive.hs 98;" file:Cmd/Play.hs >> Derive.PitchDeriver Derive/Derive.hs 98;" >> file:Cmd/ResponderSync.hs >> ... [ 20 more ] ... >> >> The vim tag documentation says these are "static" tags, and implies >> they are meant to apply to symbols only valid within the same file, >> but this is clearly not the case. Actually, the vim doc implies that >> only "file:" is defined, and doesn't talk about "scoped tags" so I'm >> not sure what is going on. Anyway, whenever I go to a tag I have to >> first step through a message that says "1 of 25" or so. There's one >> for each reference in the tags file, even though those are references >> in other files. >> > Hmm odd, I don't get that behavior. Is that with the sorted > annotation? What version of vim? > I get the correct behavior (no additional selection is needed). My vim version is 7.2.385. I did not use sorted annotation but I doubt it has anything to do with it. >> What's going on? I even checked the current docs at vim.org and they >> don't mention a file:xyz form either. >> > I think I saw it documented *somewhere*, but now that I look again I > can't find it anywhere. Maybe it was in a dream. I hope a newer > version of vim didn't remove the support or something... > Even if it is not documented it makes sense. When "file:" is present then it limits the tag to the file which is the argument of "file:". If "file:" does not have any argument then the argument defaults to the file in which the tag is defined. That would mean that exported symbols should be generated without "file:", non-exported symbols should be generated with "file:" which does not have argument. In addition to this qualified symbols should be generated with the qualification and with "file:<fn>" where <fn> is the file name where the symbol is imported as qualified. Ghci's :ctags does not support qualified symbols :-/ Just to clarify it for myself. That would mean that the tags file should look like this: B.x b.hs /^x = 5 :: Int$/;" v file:a.hs B.x b.hs /^x = 5 :: Int$/;" v file:c.hs C.x c.hs /^x = B.x+1$/;" v file:a.hs localAct a.hs /^localAct = do$/;" v file: x b.hs /^x = 5 :: Int$/;" v x c.hs /^x = B.x+1$/;" v ... for these files: === file a.hs === module A () where import qualified B as B import qualified C as C localAct = do print B.x print C.x === file b.hs === module B (x) where x = 5 :: Int === file c.hs === module C (x) where import qualified B as B x = B.x+1
RSS Feed