@@ -30,6 +30,7 @@ import qualified Data.Text.IO as T
30import qualified Data.ByteString.Lazy.Char8 as BS8
30import qualified Data.ByteString.Lazy.Char8 as BS8
31import Data.Version (showVersion)
31import Data.Version (showVersion)
32import Language.PureScript.Ide
32import Language.PureScript.Ide
33+import Language.PureScript.Ide.Command
33import Language.PureScript.Ide.Util
34import Language.PureScript.Ide.Util
34import Language.PureScript.Ide.Error
35import Language.PureScript.Ide.Error
35import Language.PureScript.Ide.Types
36import Language.PureScript.Ide.Types
@@ -40,12 +41,12 @@ import Network.Socket hiding (PortNumber, Type,
41import Options.Applicative (ParseError (..))
42import Options.Applicative (ParseError (..))
42import qualified Options.Applicative as Opts
43import qualified Options.Applicative as Opts
43import System.Directory
45import System.Directory
44import System.Info as SysInfo
46import System.Info as SysInfo
45import System.FilePath
47import System.FilePath
46import System.IO hiding (putStrLn, print)
48import System.IO hiding (putStrLn, print)
47import System.IO.Error (isEOFError)
49import System.IO.Error (isEOFError)
49import qualified Paths_purescript as Paths
50import qualified Paths_purescript as Paths
51listenOnLocalhost :: PortNumber -> IO Socket
52listenOnLocalhost :: PortNumber -> IO Socket
@@ -127,7 +128,10 @@ startServer port env = withSocketsDo $ do
127 Right (cmd, h) -> do
128 Right (cmd, h) -> do
128 case decodeT cmd of
129 case decodeT cmd of
129 Just cmd' -> do
130 Just cmd' -> do
131+ start <- liftIO (getTime Monotonic)
130 result <- runExceptT (handleCommand cmd')
132 result <- runExceptT (handleCommand cmd')
133+ end <- liftIO (getTime Monotonic)
134+ $(logDebug) ("Command " <> commandName cmd' <> " took " <> (displayTimeSpec (diffTimeSpec start end)))
131 -- $(logDebug) ("Answer was: " <> T.pack (show result))
135 -- $(logDebug) ("Answer was: " <> T.pack (show result))
132 liftIO (hFlush stdout)
136 liftIO (hFlush stdout)
133 case result of
137 case result of
@@ -140,7 +144,6 @@ startServer port env = withSocketsDo $ do
140 hFlush stdout
144 hFlush stdout
141 liftIO (hClose h)
145 liftIO (hClose h)
144acceptCommand :: (MonadIO m, MonadLogger m, MonadError Text m)
147acceptCommand :: (MonadIO m, MonadLogger m, MonadError Text m)
145 => Socket -> m (Text, Handle)
148 => Socket -> m (Text, Handle)
146acceptCommand sock = do
149acceptCommand sock = do