libhbb 0.4.0.1 → 0.4.0.2
raw patch · 4 files changed
+52/−9 lines, 4 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- CHANGELOG.md +23/−0
- Language/Haskell/HBB/Internal/InternalTTreeCreation.hs +10/−8
- README.md +15/−0
- libhbb.cabal +4/−1
+ CHANGELOG.md view
@@ -0,0 +1,23 @@++Version 0.4.0.2+---------------++ - Fixing a bug in the modes *inline* and *smart-inline* which caused them to+ produce a wrong representation for small functions that have no leading case+ expression. The parameters of these function were always aggregated to+ tuples.+ - Adding CHANGELOG.md and README.md to cabal package.++Version 0.4.0.1+---------------++ - The modes *locate*, *inline* and *smart-inline* are now able to+ inline/locate functions that are defined in infix notation.++Version 0.4.0.0+----------------++ - Added the integration mode *apply-ttree*.+ - The modes *inline* and *smart-inline* are now able converting a *where*+ expression to a *let* expression if this makes it possible to omit a leading+ *case* expression. The result is a much shorter lambda function.
Language/Haskell/HBB/Internal/InternalTTreeCreation.hs view
@@ -302,18 +302,20 @@ foldArg (curOffs,acc) curSpn = let curTree = TTree (Display curSpn) [] in (curOffs+1,(IncInline $ pointBufSpan 1 curOffs,curTree):acc)- in case length patterns of+ in case (length patterns,notationStyle) of -- Have a look at the comment [Bindings -- with zero matches] for examples of -- zero-parameter bindings that should -- be supported.- 0 -> (0,[])- 1 -> foldl foldArg (1 ,[]) patternspans- _ -> foldl foldArg (2 {- 2 means after "(" -},[]) patternspans- topLvlAddition = case length patterns of- 0 -> ""- 1 -> ""- _ -> "(" ++ (replicate ((length patterns) - 1) ',') ++ ")"+ (0,_) -> (0,[])+ (1,_) -> foldl foldArg (1 ,[]) patternspans+ (_,LongNotationWithWhere) -> foldl foldArg (2 {- 2 means after "(" -},[]) patternspans+ (_,ShortNotationStyle) -> foldl foldArg (1 ,[]) patternspans+ topLvlAddition = case (length patterns,notationStyle) of+ (0,_) -> "" -- a value binding+ (1,_) -> ""+ (_,LongNotationWithWhere) -> "(" ++ (replicate ((length patterns) - 1) ',') ++ ")"+ (_,ShortNotationStyle) -> (replicate ((length patterns) - 1) ' ') in TTree (Addition [topLvlAddition]) childs let isValueBinding = (length patterns) == 0 grhssTree <- toTTree (isValueBinding,grhss,notationStyle)
+ README.md view
@@ -0,0 +1,15 @@+# **hbb**: Extraordinary Haskell programming++This project aims to create a tool which should be easily embeddable in text+editors to assist them to provide extraordinary editing features for the+Haskell programming language. To archieve this, the tool is based on the+library of the Glasgow Haskell Compiler (GHC).++The name **hbb** is short for *h*askell *b*usy *b*ee and should remind one of+the programmers using it. It consists of the library *hbb* and a command line+tool which has the name *libhbb-cli*. *libhbb-cli* has been chosen because in+another repository the features of (the library) *hbb* and *ghc-mod* are merged+into an executable *hbb* which provides (many more) features than *libhbb-cli*.++One outstanding feature of *hbb* is is the possibility to inline a function+binding.
libhbb.cabal view
@@ -9,7 +9,7 @@ -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change-version: 0.4.0.1+version: 0.4.0.2 -- A short (one-line) description of the package. synopsis: Backend for text editors to provide better Haskell editing support.@@ -54,6 +54,9 @@ -- Constraint on the version of Cabal needed to build this package. cabal-version: >= 1.8++extra-source-files: README.md+ CHANGELOG.md source-repository head type: git