Skip to content
Browse files

Add some initial text to

  • Loading branch information...
1 parent 6bea71a commit f63bf0fa1d568f116829cde2ba67e1f9a4202afa Bit Connor committed
Showing with 54 additions and 0 deletions.
  1. +54 −0
@@ -2,3 +2,57 @@ lushtags
Create ctags compatible tags files for Haskell programs
+Similar programs are [hasktags][1], [gasbag][2], [hothasktags][3], and GHC's
+builtin ctags generation.
+lushtags differs from these by being designed to have smooth integration with
+the [Vim Tagbar][4] 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.
+Using lushtags with Vim and the Tagbar plugin
+1. Build and install the lushtags executable
+ $ cabal configure
+ $ cabal build
+ $ cabal install
+2. Install the Tagbar plugin. Tagbar can be found at
+ <>
+ <>
+3. Install the included Haskell Tagbar configuration:
+ $ cp util/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.

0 comments on commit f63bf0f

Please sign in to comment.
Something went wrong with that request. Please try again.