Skip to content

Commit

Permalink
Create tags for function declarations
Browse files Browse the repository at this point in the history
  • Loading branch information
Bit Connor committed Sep 17, 2011
1 parent 5c4d6e6 commit 600bf29
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions src/Tags.hs
Expand Up @@ -22,6 +22,7 @@ module Tags
import Data.Vector(Vector, (!))
import Language.Haskell.Exts.Annotated (SrcSpan(..), SrcSpanInfo(..))
import Language.Haskell.Exts.Annotated.Syntax
import Language.Haskell.Exts.Pretty (prettyPrintStyleMode, Style(..), Mode(OneLineMode), defaultMode)

data Tag = Tag
{ tagName :: String
Expand Down Expand Up @@ -120,6 +121,14 @@ createDeclTags (DataDecl _ dataOrNew _ hd constructors _) =
NewType _ -> TNewType
dataTag = createTag name kind Nothing Nothing loc
in dataTag : map (createConstructorTag (kind, name)) constructors
createDeclTags (TypeSig _ names t) =
map createFunctionTag names
where
sig = prettyPrintStyleMode (Style OneLineMode 0 0) defaultMode t
createFunctionTag :: Name SrcSpanInfo -> TagC
createFunctionTag name =
let (n, loc) = extractName name
in createTag n TFunction Nothing (Just sig) loc
createDeclTags _ = []

-- TODO Also create tags for record fields
Expand Down

0 comments on commit 600bf29

Please sign in to comment.