-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Background process for Haskell-tools refactor that editors can connect to.
--   
--   Background process for Haskell-tools refactor that editors can connect
--   to.
@package haskell-tools-daemon
@version 0.8.0.0

module Paths_haskell_tools_daemon
version :: Version
getBinDir :: IO FilePath
getLibDir :: IO FilePath
getDynLibDir :: IO FilePath
getDataDir :: IO FilePath
getLibexecDir :: IO FilePath
getDataFileName :: FilePath -> IO FilePath
getSysconfDir :: IO FilePath

module Language.Haskell.Tools.Refactor.Daemon.PackageDB
data PackageDB
AutoDB :: PackageDB
DefaultDB :: PackageDB
CabalSandboxDB :: PackageDB
StackDB :: PackageDB
ExplicitDB :: FilePath -> PackageDB
[packageDBPath] :: PackageDB -> FilePath
packageDBLoc :: PackageDB -> FilePath -> IO [FilePath]

-- | Gets the (probable) location of autogen folder depending on which type
--   of build we are using.
detectAutogen :: FilePath -> PackageDB -> IO (Maybe FilePath)
trim :: String -> String
choose :: Alternative f => [f a] -> f a
ifExists :: FilePath -> IO (Maybe FilePath)
instance GHC.Generics.Generic Language.Haskell.Tools.Refactor.Daemon.PackageDB.PackageDB
instance GHC.Show.Show Language.Haskell.Tools.Refactor.Daemon.PackageDB.PackageDB
instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.Tools.Refactor.Daemon.PackageDB.PackageDB

module Language.Haskell.Tools.Refactor.Daemon.State
data DaemonSessionState
DaemonSessionState :: RefactorSessionState -> PackageDB -> Bool -> [FilePath] -> Bool -> DaemonSessionState
[_refactorSession] :: DaemonSessionState -> RefactorSessionState
[_packageDB] :: DaemonSessionState -> PackageDB
[_packageDBSet] :: DaemonSessionState -> Bool
[_packageDBLocs] :: DaemonSessionState -> [FilePath]
[_exiting] :: DaemonSessionState -> Bool
refactorSession :: Lens DaemonSessionState DaemonSessionState RefactorSessionState RefactorSessionState
packageDBSet :: Lens DaemonSessionState DaemonSessionState Bool Bool
packageDBLocs :: Lens DaemonSessionState DaemonSessionState [FilePath] [FilePath]
packageDB :: Lens DaemonSessionState DaemonSessionState PackageDB PackageDB
exiting :: Lens DaemonSessionState DaemonSessionState Bool Bool
instance Language.Haskell.Tools.Refactor.RefactorBase.IsRefactSessionState Language.Haskell.Tools.Refactor.Daemon.State.DaemonSessionState

module Language.Haskell.Tools.Refactor.Daemon
runDaemonCLI :: IO ()
runDaemon :: [String] -> IO ()
defaultArgs :: [String]
clientLoop :: Bool -> Socket -> IO ()
serverLoop :: Bool -> Session -> MVar DaemonSessionState -> Socket -> IO ()
respondTo :: Session -> MVar DaemonSessionState -> (ByteString -> IO ()) -> ByteString -> IO Bool

-- | This function does the real job of acting upon client messages in a
--   stateful environment of a client
updateClient :: (ResponseMsg -> IO ()) -> ClientMessage -> StateT DaemonSessionState Ghc Bool
addPackages :: (ResponseMsg -> IO ()) -> [FilePath] -> StateT DaemonSessionState Ghc ()
data UndoRefactor
RemoveAdded :: FilePath -> UndoRefactor
[undoRemovePath] :: UndoRefactor -> FilePath
RestoreRemoved :: FilePath -> String -> UndoRefactor
[undoRestorePath] :: UndoRefactor -> FilePath
[undoRestoreContents] :: UndoRefactor -> String
UndoChanges :: FilePath -> FileDiff -> UndoRefactor
[undoChangedPath] :: UndoRefactor -> FilePath
[undoDiff] :: UndoRefactor -> FileDiff
type FileDiff = [(Int, Int, String)]
createUndo :: Eq a => Int -> [Diff [a]] -> [(Int, Int, [a])]
initGhcSession :: IO Session
usePackageDB :: GhcMonad m => [FilePath] -> m ()
getProblems :: RefactorException -> Either String [(SrcSpan, String)]
data ClientMessage
KeepAlive :: ClientMessage
Handshake :: [Int] -> ClientMessage
[clientVersion] :: ClientMessage -> [Int]
SetPackageDB :: PackageDB -> ClientMessage
[pkgDB] :: ClientMessage -> PackageDB
AddPackages :: [FilePath] -> ClientMessage
[addedPathes] :: ClientMessage -> [FilePath]
RemovePackages :: [FilePath] -> ClientMessage
[removedPathes] :: ClientMessage -> [FilePath]
PerformRefactoring :: String -> FilePath -> String -> [String] -> ClientMessage
[refactoring] :: ClientMessage -> String
[modulePath] :: ClientMessage -> FilePath
[editorSelection] :: ClientMessage -> String
[details] :: ClientMessage -> [String]
Stop :: ClientMessage
Disconnect :: ClientMessage
ReLoad :: [FilePath] -> [FilePath] -> [FilePath] -> ClientMessage
[addedModules] :: ClientMessage -> [FilePath]
[changedModules] :: ClientMessage -> [FilePath]
[removedModules] :: ClientMessage -> [FilePath]
data ResponseMsg
KeepAliveResponse :: ResponseMsg
HandshakeResponse :: [Int] -> ResponseMsg
[serverVersion] :: ResponseMsg -> [Int]
ErrorMessage :: String -> ResponseMsg
[errorMsg] :: ResponseMsg -> String
CompilationProblem :: [(SrcSpan, String)] -> ResponseMsg
[errorMarkers] :: ResponseMsg -> [(SrcSpan, String)]
ModulesChanged :: [UndoRefactor] -> ResponseMsg
[undoChanges] :: ResponseMsg -> [UndoRefactor]
LoadedModules :: [(FilePath, String)] -> ResponseMsg
[loadedModules] :: ResponseMsg -> [(FilePath, String)]
LoadingModules :: [FilePath] -> ResponseMsg
[modulesToLoad] :: ResponseMsg -> [FilePath]
Disconnected :: ResponseMsg
instance GHC.Generics.Generic Language.Haskell.Tools.Refactor.Daemon.ResponseMsg
instance GHC.Show.Show Language.Haskell.Tools.Refactor.Daemon.ResponseMsg
instance GHC.Generics.Generic Language.Haskell.Tools.Refactor.Daemon.ClientMessage
instance GHC.Show.Show Language.Haskell.Tools.Refactor.Daemon.ClientMessage
instance GHC.Generics.Generic Language.Haskell.Tools.Refactor.Daemon.UndoRefactor
instance GHC.Show.Show Language.Haskell.Tools.Refactor.Daemon.UndoRefactor
instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.Tools.Refactor.Daemon.UndoRefactor
instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.Tools.Refactor.Daemon.ClientMessage
instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.Tools.Refactor.Daemon.ResponseMsg
instance Data.Aeson.Types.ToJSON.ToJSON SrcLoc.SrcSpan
