Personal tools

Tags

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
m (Vim: Added a link to tagbar)
(Haskell tag generators: add hothasktags)
 
(One intermediate revision by one user not shown)
Line 21: Line 21:
 
* [http://hackage.haskell.org/package/hasktags Hasktags]: Can produce either a ctags or etags compatible tag file.
 
* [http://hackage.haskell.org/package/hasktags Hasktags]: Can produce either a ctags or etags compatible tag file.
 
* [http://kingfisher.nfshost.com/sw/gasbag/ Gasbag]: An apparently improved version of Hasktags.
 
* [http://kingfisher.nfshost.com/sw/gasbag/ Gasbag]: An apparently improved version of Hasktags.
  +
* [http://hackage.haskell.org/package/hothasktags hothasktags]: uses haskell-src-exts instead of haskell-src, and knows about import lists and qualified imports
   
   
Line 33: Line 34:
 
*[http://vimdoc.sourceforge.net/htmldoc/windows.html#CursorHold-example :help cursorhold-example]
 
*[http://vimdoc.sourceforge.net/htmldoc/windows.html#CursorHold-example :help cursorhold-example]
 
* [http://vim-taglist.sourceforge.net/ Vim plugin to view all tags in a window]
 
* [http://vim-taglist.sourceforge.net/ Vim plugin to view all tags in a window]
* [http://majutsushi.github.com/tagbar/ Another plugin; newer's not always better, but this is still actively maintained as of 2012]
+
* [http://majutsushi.github.com/tagbar/ Another plugin]; newer's not always better, but this is still actively maintained as of 2012
   
 
=== Others ===
 
=== Others ===

Latest revision as of 16:51, 16 October 2013

Contents

[edit] 1 Introduction

"Tags" are a listing of source code definitions in a group of files, together with their precise location, often used by text editors to quickly jump around in a program. For example, they allow you in a editor that supports tags to jump to the definition of a function when you come across a use of that function. ctags (for C) was the first tag-generation program. See the wikipedia article for more information.

There are currently a number of different ways to generate tags with Haskell.

[edit] 2 Tags Formats

Tag files can be produced in a number of different formats supported by different editors. The two most common formats are 'ctags', which is supported by Vim and others, and 'etags', which is supported by Emacs. Note that the default names for the file in ctags format and the file in etags format are 'tags' and 'TAGS' respectively

[edit] 3 Haskell tag generators

  • GHC: Can generate tag files from GHCi. Use either the ':ctags' or ':etags' commands to produce a tags file for the currently loaded modules.
For example:
echo ":ctags" | ghci -v0 Main.hs
echo ":etags" | ghci -v0 Main.hs
  • Hasktags: Can produce either a ctags or etags compatible tag file.
  • Gasbag: An apparently improved version of Hasktags.
  • hothasktags: uses haskell-src-exts instead of haskell-src, and knows about import lists and qualified imports


You can also find the source code for a tag generator in Chris Ryder and Simon Thompson paper on porting the Haskell Refactoring tool, HaRe, to the GHC API.

[edit] 4 More Information

[edit] 4.1 Vim

[edit] 4.2 Others