Fix moving comment in export list (haddock header) (#281)
parent
825ec425d4
commit
38cdd15221
|
@ -824,3 +824,13 @@ foo =
|
||||||
, ("xx", "xxxxx")
|
, ("xx", "xxxxx")
|
||||||
, ("xx", "xx")
|
, ("xx", "xx")
|
||||||
]
|
]
|
||||||
|
|
||||||
|
#test issue 281
|
||||||
|
|
||||||
|
module Main
|
||||||
|
( DataTypeI
|
||||||
|
, DataTypeII(DataConstructor)
|
||||||
|
-- * Haddock heading
|
||||||
|
, name
|
||||||
|
)
|
||||||
|
where
|
||||||
|
|
|
@ -65,29 +65,36 @@ layoutIE lie@(L _ ie) = docWrapNode lie $ case ie of
|
||||||
#else
|
#else
|
||||||
IEThingWith x _ ns _ -> do
|
IEThingWith x _ ns _ -> do
|
||||||
#endif
|
#endif
|
||||||
hasComments <- hasAnyCommentsBelow lie
|
hasComments <- orM
|
||||||
|
( hasCommentsBetween lie AnnOpenP AnnCloseP
|
||||||
|
: hasAnyCommentsBelow x
|
||||||
|
: map hasAnyCommentsBelow ns
|
||||||
|
)
|
||||||
runFilteredAlternative $ do
|
runFilteredAlternative $ do
|
||||||
addAlternativeCond (not hasComments)
|
addAlternativeCond (not hasComments)
|
||||||
$ docSeq
|
$ docSeq
|
||||||
$ [layoutWrapped lie x, docLit $ Text.pack "("]
|
$ [layoutWrapped lie x, docLit $ Text.pack "("]
|
||||||
++ intersperse docCommaSep (map nameDoc ns)
|
++ intersperse docCommaSep (map nameDoc ns)
|
||||||
++ [docParenR]
|
++ [docParenR]
|
||||||
addAlternative $ docAddBaseY BrIndentRegular $ docPar
|
addAlternative
|
||||||
(layoutWrapped lie x)
|
$ docWrapNodeRest lie
|
||||||
(layoutItems (splitFirstLast ns))
|
$ docAddBaseY BrIndentRegular
|
||||||
|
$ docPar
|
||||||
|
(layoutWrapped lie x)
|
||||||
|
(layoutItems (splitFirstLast ns))
|
||||||
where
|
where
|
||||||
nameDoc = (docLit =<<) . lrdrNameToTextAnn . prepareName
|
nameDoc = (docLit =<<) . lrdrNameToTextAnn . prepareName
|
||||||
layoutItem n = docSeq [docCommaSep, docWrapNode n $ nameDoc n]
|
layoutItem n = docSeq [docCommaSep, docWrapNode n $ nameDoc n]
|
||||||
layoutItems FirstLastEmpty = docSetBaseY $ docLines
|
layoutItems FirstLastEmpty = docSetBaseY $ docLines
|
||||||
[docSeq [docParenLSep, docWrapNodeRest lie docEmpty], docParenR]
|
[docSeq [docParenLSep, docNodeAnnKW lie (Just AnnOpenP) docEmpty], docParenR]
|
||||||
layoutItems (FirstLastSingleton n) = docSetBaseY $ docLines
|
layoutItems (FirstLastSingleton n) = docSetBaseY $ docLines
|
||||||
[docSeq [docParenLSep, docWrapNodeRest lie $ nameDoc n], docParenR]
|
[docSeq [docParenLSep, docNodeAnnKW lie (Just AnnOpenP) $ nameDoc n], docParenR]
|
||||||
layoutItems (FirstLast n1 nMs nN) =
|
layoutItems (FirstLast n1 nMs nN) =
|
||||||
docSetBaseY
|
docSetBaseY
|
||||||
$ docLines
|
$ docLines
|
||||||
$ [docSeq [docParenLSep, docWrapNode n1 $ nameDoc n1]]
|
$ [docSeq [docParenLSep, docWrapNode n1 $ nameDoc n1]]
|
||||||
++ map layoutItem nMs
|
++ map layoutItem nMs
|
||||||
++ [docSeq [docCommaSep, docWrapNodeRest lie $ nameDoc nN], docParenR]
|
++ [docSeq [docCommaSep, docNodeAnnKW lie (Just AnnOpenP) $ nameDoc nN], docParenR]
|
||||||
#if MIN_VERSION_ghc(8,6,0)
|
#if MIN_VERSION_ghc(8,6,0)
|
||||||
IEModuleContents _ n -> docSeq
|
IEModuleContents _ n -> docSeq
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Reference in New Issue