packages feed

haskell-tools-demo 1.0.0.4 → 1.0.1.1

raw patch · 5 files changed

+29/−52 lines, 5 filesdep ~aesondep ~http-typesPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: aeson, http-types

API changes (from Hackage documentation)

Files

haskell-tools-demo.cabal view
@@ -1,5 +1,5 @@ name:                haskell-tools-demo
-version:             1.0.0.4
+version:             1.0.1.1
 synopsis:            A web-based demo for Haskell-tools Refactor.
 description:         Allows websocket clients to connect and performs refactorings on demand. The clients maintain a continous connection with the server, sending changes in the source files. When a refactor request is received, it performs the changes and sends the modified source files to the client.
 homepage:            https://github.com/haskell-tools/haskell-tools
@@ -21,9 +21,9 @@                      , transformers              >= 0.5  && < 0.6
                      , directory                 >= 1.2  && < 1.4
                      , containers                >= 0.5  && < 0.6
-                     , aeson                     >= 1.0 && < 1.3
+                     , aeson                     >= 1.0 && < 1.4
                      , bytestring                >= 0.10 && < 0.11
-                     , http-types                >= 0.9  && < 0.12
+                     , http-types                >= 0.9  && < 0.13
                      , warp                      >= 3.2  && < 3.3
                      , wai                       >= 3.2  && < 3.3
                      , websockets                >= 0.12  && < 0.13
@@ -61,6 +61,6 @@                      , bytestring                >= 0.10 && < 0.11
                      , network                   >= 2.6 && < 2.7
                      , websockets                >= 0.12 && < 0.13
-                     , aeson                     >= 1.0 && < 1.3
+                     , aeson                     >= 1.0 && < 1.4
                      , haskell-tools-demo
   default-language:    Haskell2010
src/Language/Haskell/Tools/ASTDebug.hs view
@@ -1,18 +1,5 @@-{-# LANGUAGE TypeOperators
-           , DefaultSignatures
-           , StandaloneDeriving
-           , FlexibleContexts
-           , FlexibleInstances
-           , MultiParamTypeClasses
-           , TypeFamilies
-           , TemplateHaskell
-           , OverloadedStrings
-           , ConstraintKinds
-           , LambdaCase
-           , ViewPatterns
-           , ScopedTypeVariables
-           , UndecidableInstances
-           #-}
+{-# LANGUAGE TypeOperators, DefaultSignatures, StandaloneDeriving, FlexibleContexts, FlexibleInstances, MultiParamTypeClasses, TypeFamilies, TemplateHaskell, OverloadedStrings, ConstraintKinds, LambdaCase, ViewPatterns, ScopedTypeVariables, UndecidableInstances #-}
+
 -- | A module for displaying the AST in a tree view.
 module Language.Haskell.Tools.ASTDebug where
 
@@ -43,7 +30,7 @@                                 , _nodeValue :: String
                                 }
 
-deriving instance Domain dom => Show (DebugNode dom)
+-- deriving instance Domain dom => Show (DebugNode dom)
 
 data TreeDebugNode dom
   = TreeDebugNode { _nodeName :: String
@@ -51,36 +38,33 @@                   , _children :: [DebugNode dom]
                   }
 
-deriving instance Domain dom => Show (TreeDebugNode dom)
+-- deriving instance Domain dom => Show (TreeDebugNode dom)
 
 data SemanticInfoType dom
   = DefaultInfoType { semaInfoTypeRng :: SrcSpan
                     }
-  | NameInfoType { semaInfoTypeName :: SemanticInfo' dom SameInfoNameCls
+  | NameInfoType { semaInfoTypeName :: SemanticInfo' dom SemaInfoNameCls
                  , semaInfoTypeRng :: SrcSpan
                  }
-  | ExprInfoType { semaInfoTypeExpr :: SemanticInfo' dom SameInfoExprCls
+  | ExprInfoType { semaInfoTypeExpr :: SemanticInfo' dom SemaInfoExprCls
                  , semaInfoTypeRng :: SrcSpan
                  }
-  | ImportInfoType { semaInfoTypeImport :: SemanticInfo' dom SameInfoImportCls
+  | ImportInfoType { semaInfoTypeImport :: SemanticInfo' dom SemaInfoImportCls
                    , semaInfoTypeRng :: SrcSpan
                    }
-  | ModuleInfoType { semaInfoTypeModule :: SemanticInfo' dom SameInfoModuleCls
+  | ModuleInfoType { semaInfoTypeModule :: SemanticInfo' dom SemaInfoModuleCls
                    , semaInfoTypeRng :: SrcSpan
                    }
-  | ImplicitFieldInfoType { semaInfoTypeImplicitFld :: SemanticInfo' dom SameInfoWildcardCls
+  | ImplicitFieldInfoType { semaInfoTypeImplicitFld :: SemanticInfo' dom SemaInfoWildcardCls
                           , semaInfoTypeRng :: SrcSpan
                           }
 
-
-deriving instance Domain dom => Show (SemanticInfoType dom)
-
 makeReferences ''DebugNode
 makeReferences ''TreeDebugNode
 
-type AssocSema dom = ( AssocData (SemanticInfo' dom SameInfoModuleCls), AssocData (SemanticInfo' dom SameInfoImportCls)
-                     , AssocData (SemanticInfo' dom SameInfoNameCls), AssocData (SemanticInfo' dom SameInfoExprCls)
-                     , AssocData (SemanticInfo' dom SameInfoWildcardCls) )
+type AssocSema dom = ( AssocData (SemanticInfo' dom SemaInfoModuleCls), AssocData (SemanticInfo' dom SemaInfoImportCls)
+                     , AssocData (SemanticInfo' dom SemaInfoNameCls), AssocData (SemanticInfo' dom SemaInfoExprCls)
+                     , AssocData (SemanticInfo' dom SemaInfoWildcardCls) )
 
 astDebug :: (ASTDebug e dom st, AssocSema dom) => e dom st -> String
 astDebug ast = toList (astDebugToJson (astDebug' ast))
@@ -171,13 +155,17 @@                 ]
 
 inspectScope :: InspectableName n => [[(n, Maybe [UsageSpec], Maybe n)]] -> String
-inspectScope = concat . intersperse " | " . map (concat . intersperse ", " . map inspect)
+inspectScope = concat . intersperse " | " . map (concat . intersperse ", " . map showUsage)
 
 class Outputable n => InspectableName n where
   inspect :: n -> String
 
-instance InspectableName n => InspectableName (n, Maybe [UsageSpec], Maybe n) where
-  inspect (n,usage,parent) = inspect n ++ showSDocUnsafe (ppr usage) ++ maybe "" (\p -> "( in " ++ showSDocUnsafe (ppr p) ++ ")") parent
+showUsage :: InspectableName n => (n, Maybe [UsageSpec], Maybe n) -> String
+showUsage (n,usage,parent) = inspect n ++ show usage ++ maybe "" (\p -> "( in " ++ showSDocUnsafe (ppr p) ++ ")") parent
+
+instance Show UsageSpec where
+  show (UsageSpec q useQ asQ)
+    = (if q then "qualified " else "") ++ "as " ++ (if useQ == asQ || q then asQ else asQ ++ " or " ++ useQ)
 
 instance InspectableName GHC.Name where
   inspect name = showSDocUnsafe (ppr name) ++ "[" ++ show (getUnique name) ++ "]"
src/Language/Haskell/Tools/ASTDebug/Instances.hs view
@@ -1,9 +1,5 @@-{-# LANGUAGE FlexibleContexts
-           , FlexibleInstances
-           , MultiParamTypeClasses
-           , UndecidableInstances
-           , TypeFamilies
-           #-}
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, GADTs, MultiParamTypeClasses, UndecidableInstances #-}
+
 module Language.Haskell.Tools.ASTDebug.Instances where
 
 import Language.Haskell.Tools.ASTDebug
src/Language/Haskell/Tools/Demo.hs view
@@ -1,13 +1,6 @@-{-# LANGUAGE OverloadedStrings
-           , DeriveGeneric
-           , TypeApplications
-           , ScopedTypeVariables
-           , LambdaCase
-           , TemplateHaskell
-           , PatternGuards
-           , FlexibleContexts
-           #-}
+{-# LANGUAGE OverloadedStrings, DeriveGeneric, TypeApplications, ScopedTypeVariables, LambdaCase, TemplateHaskell, PatternGuards, FlexibleContexts #-} 
+
 module Language.Haskell.Tools.Demo where
 
 import Control.Concurrent.MVar
@@ -45,7 +38,6 @@ 
 import Control.Reference
 
-import Language.Haskell.Tools.AST
 import Language.Haskell.Tools.ASTDebug
 import Language.Haskell.Tools.ASTDebug.Instances ()
 import Language.Haskell.Tools.PrettyPrint
test/Main.hs view
@@ -1,4 +1,5 @@-{-# LANGUAGE StandaloneDeriving #-}
+{-# LANGUAGE StandaloneDeriving #-}+
 module Main where
 
 import Control.Concurrent (killThread, forkIO)