Skip to content
/ lushtags Public
forked from bitc/lushtags

Create ctags compatible tags files for Haskell programs

License

Notifications You must be signed in to change notification settings

mkasa/lushtags

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lushtags

This repository is forked from (bitc/lushtags)[https://github.com/bitc/lushtags] because it was not maintained (at least it looked so to me). The difference from the last fork is shown in the last section.

Create ctags compatible tags files for Haskell programs

Similar programs are hasktags, gasbag, hothasktags, and GHC's builtin ctags generation.

lushtags differs from these by being designed to have smooth integration with the Vim Tagbar plugin.

Tagbar is nice because it deals with creating tags automatically. There is no need to manually run commands or keep track of tag files. Just open any Haskell file in Vim and the Tagbar window will instantly show an interactive browsable list of all the functions and declarations in the file. This window also updates automatically as you edit the file.

The tags created by lushtags are marked with several extensions, so that when used with Tagbar you get these features:

  • Type signatures are displayed for functions.
  • Tags are properly scoped so that, for example, data declarations appear as a tree with their constructors scoped as children.
  • Definitions that are exported from the module are marked as "public" and appear emphasized in Tagbar.
  • Tag locations are internally stored as patterns, not line numbers, so that you can correctly jump to tags even if they have moved in the source code during editing.

screenshot

The original version of lushtags could not handle fields, but this version can handle them.

screenshot2

Using lushtags with Vim and the Tagbar plugin

  1. Build and install the lushtags executable

    Using cabal:

     $ cabal configure
     $ cabal build
     $ cabal install
    

    Using stack:

     $ stack build
     $ stack install
    
  2. Install the Tagbar plugin. Tagbar can be found at

    https://www.vim.org/scripts/script.php?script_id=3465 https://majutsushi.github.com/tagbar/

  3. Install the included Haskell Tagbar configuration:

     $ cp plugin/tagbar-haskell.vim ~/.vim/plugin/
    
  4. Try it out:

     $ vim Hello.hs
    

Now open the Tagbar with the command :TagbarOpen. An interactive sidebar will appear with all of the tags in your Haskell source file.

Differences from bitc/lushtags

  • Compatible with GHC 7.10.3 (probably with older versions down to 7.8.3 as well)
  • Outputs record functions.

About

Create ctags compatible tags files for Haskell programs

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Haskell 91.3%
  • Vim Script 8.7%