module Language.Haskell.Refact.Utils.Types
(
ApplyRefacResult
, RefacResult(..)
, RefacSource(..)
, TreeId(..)
, mainTid
, TokenCache(..)
, SimpPos
, SimpSpan
, NameMap
) where
import qualified GHC as GHC
import Language.Haskell.GHC.ExactPrint
import qualified Data.Map as Map
type ApplyRefacResult = ((FilePath, RefacResult), (Anns,GHC.ParsedSource))
data RefacResult = RefacModified | RefacUnmodifed
deriving (Show,Ord,Eq)
data RefacSource = RSFile FilePath
| RSMod GHC.ModSummary
| RSAlreadyLoaded
data TreeId = TId !Int deriving (Eq,Ord,Show)
mainTid :: TreeId
mainTid = TId 0
data TokenCache a = TK
{ tkCache :: !(Map.Map TreeId a)
, tkLastTreeId :: !TreeId
} deriving (Show)
type SimpPos = (Int,Int)
type SimpSpan = (SimpPos,SimpPos)
type NameMap = Map.Map GHC.SrcSpan GHC.Name