@@ -269,6 +269,64 @@ function! quickui#tools#preview_quickfix(...)
269269endfunc
270270
271271
272+ " ----------------------------------------------------------------------
273+ " preview tag
274+ " ----------------------------------------------------------------------
275+ function ! quickui#tools#preview_tag (tagname)
276+ let tagname = (a: tagname == ' ' )? expand (' <cword>' ) : a: tagname
277+ if tagname == ' '
278+ call quickui#utils#errmsg (' Error: empty tagname' )
279+ return 0
280+ endif
281+ let obj = quickui#core#object ()
282+ let reuse = 0
283+ if has_key (obj, ' ptag' )
284+ let ptag = obj.ptag
285+ if get (ptag , ' tagname' , ' ' ) == tagname
286+ let reuse = 1
287+ endif
288+ endif
289+ if reuse == 0
290+ let obj.ptag = {}
291+ let ptag = obj.ptag
292+ let ptag .taglist = quickui#tags#tagfind (tagname)
293+ let ptag .tagname = tagname
294+ let ptag .index = 0
295+ else
296+ let ptag = obj.ptag
297+ let ptag .index += 1
298+ if ptag .index >= len (ptag .taglist )
299+ let ptag .index = 0
300+ endif
301+ endif
302+ if len (ptag .taglist ) == 0
303+ call quickui#utils#errmsg (' E257: preview: tag not find "' . a: tagname . ' "' )
304+ return 1
305+ endif
306+ if ptag .index >= len (ptag .taglist ) || ptag .index < 0
307+ let ptag .index = 0
308+ endif
309+ let taginfo = ptag .taglist [ptag .index ]
310+ let filename = taginfo.filename
311+ if ! filereadable (filename)
312+ call quickui#utils#errmsg (' E484: Can not open file ' .filename)
313+ return 2
314+ endif
315+ if ! has_key (taginfo, ' line' )
316+ call quickui#utils#errmsg (' Error: no "line" information in your tags, regenerate with -n' )
317+ return 3
318+ endif
319+ call quickui#preview#open (filename, taginfo.line )
320+ let text = taginfo.name
321+ let text.= ' (' .(ptag .index + 1 ).' /' .len (ptag .taglist ).' ) '
322+ let text.= filename
323+ if has_key (taginfo, ' line' )
324+ let text .= ' :' .taginfo.line
325+ endif
326+ call quickui#utils#print (text, 1 )
327+ return 0
328+ endfunc
329+
272330
273331" ----------------------------------------------------------------------
274332" display vim help in popup
@@ -316,3 +374,4 @@ function! quickui#tools#display_help(tag)
316374endfunc
317375
318376
377+
0 commit comments