@@ -30,6 +30,7 @@ import qualified Data.Text.IO as T
3030import qualified Data.ByteString.Lazy.Char8 as BS8
3131import Data.Version (showVersion)
3232import Language.PureScript.Ide
33+import Language.PureScript.Ide.Command
3334import Language.PureScript.Ide.Util
3435import Language.PureScript.Ide.Error
3536import Language.PureScript.Ide.Types
@@ -40,12 +41,12 @@ import Network.Socket hiding (PortNumber, Type,
4041 sClose)
4142import Options.Applicative (ParseError (..))
4243import qualified Options.Applicative as Opts
44+import System.Clock
4345import System.Directory
4446import System.Info as SysInfo
4547import System.FilePath
4648import System.IO hiding (putStrLn, print)
4749import System.IO.Error (isEOFError)
48−
4950import qualified Paths_purescript as Paths
5051
5152listenOnLocalhost :: PortNumber -> IO Socket
@@ -127,7 +128,10 @@ startServer port env = withSocketsDo $ do
127128 Right (cmd, h) -> do
128129 case decodeT cmd of
129130 Just cmd' -> do
131+ start <- liftIO (getTime Monotonic)
130132 result <- runExceptT (handleCommand cmd')
133+ end <- liftIO (getTime Monotonic)
134+ $(logDebug) ("Command " <> commandName cmd' <> " took " <> (displayTimeSpec (diffTimeSpec start end)))
131135 -- $(logDebug) ("Answer was: " <> T.pack (show result))
132136 liftIO (hFlush stdout)
133137 case result of
@@ -140,7 +144,6 @@ startServer port env = withSocketsDo $ do
140144 hFlush stdout
141145 liftIO (hClose h)
142146
143−
144147acceptCommand :: (MonadIO m, MonadLogger m, MonadError Text m)
145148 => Socket -> m (Text, Handle)
146149acceptCommand sock = do