packages feed

ihaskell 0.8.3.0 → 0.8.4.0

raw patch · 4 files changed

+44/−19 lines, 4 filesdep ~aesondep ~ipython-kernel

Dependency ranges changed: aeson, ipython-kernel

Files

ihaskell.cabal view
@@ -7,7 +7,7 @@ -- PVP summary:      +-+------- breaking API changes --                   | | +----- non-breaking API additions --                   | | | +--- code changes with no API change-version:             0.8.3.0+version:             0.8.4.0  -- A short (one-line) description of the package. synopsis:            A Haskell backend kernel for the IPython project.@@ -54,7 +54,7 @@   hs-source-dirs:      src   default-language:    Haskell2010   build-depends:-                       aeson                >=0.7 && < 0.11,+                       aeson                >=0.7 && < 0.12,                        base                 >=4.6 && < 4.9,                        base64-bytestring    >=1.0,                        bytestring           >=0.10,@@ -141,7 +141,7 @@                        transformers         -any,                        ghc                  >=7.6 || < 7.11,                        process              >=1.1,-                       aeson                >=0.7 && < 0.11,+                       aeson                >=0.7 && < 0.12,                        bytestring           >=0.10,                        containers           >=0.5,                        strict               >=0.3,@@ -165,7 +165,7 @@     default-language: Haskell2010     build-depends:         ihaskell,-        aeson >=0.6 && < 0.11,+        aeson >=0.6 && < 0.12,         base >=4.6 && < 4.9,         base64-bytestring >=1.0,         bytestring >=0.10,
main/Main.hs view
@@ -27,7 +27,8 @@ import           System.Posix.Signals import qualified Data.Map as Map import qualified Data.Text.Encoding as E-import           Data.List (break)+import           Data.List (break, last)+import           Data.Version (showVersion)  -- IHaskell imports. import           IHaskell.Convert (convert)@@ -46,6 +47,9 @@ import qualified IHaskell.IPython.Message.UUID as UUID import qualified IHaskell.IPython.Stdin as Stdin +-- Cabal imports.+import           Paths_ihaskell(version)+ -- GHC API imports. import           GHC hiding (extensions, language) @@ -69,7 +73,7 @@     Right args        -> ihaskell args  ihaskell :: Args -> IO ()-ihaskell (Args (ShowHelp help) _) = putStrLn help+ihaskell (Args (ShowDefault helpStr) args) = showDefault helpStr args ihaskell (Args ConvertLhs args) = showingHelp ConvertLhs args $ convert args ihaskell (Args InstallKernelSpec args) = showingHelp InstallKernelSpec args $ do   let kernelSpecOpts = parseKernelArgs args@@ -82,6 +86,14 @@   hPutStrLn stderr "This may be a bug!"   hPrint stderr a +showDefault :: String -> [Argument] -> IO ()+showDefault helpStr flags =+  case find (== Version) flags of+  Just _ ->+    putStrLn (showVersion version)+  Nothing ->+    putStrLn helpStr+ showingHelp :: IHaskellMode -> [Argument] -> IO () -> IO () showingHelp mode flags act =   case find (== Help) flags of@@ -239,8 +251,10 @@   return     (state, KernelInfoReply               { header = replyHeader+              , protocolVersion = "5.0"+              , banner = "IHaskell " ++ (showVersion version) ++ " GHC " ++ VERSION_ghc               , implementation = "IHaskell"-              , implementationVersion = VERSION_ipython_kernel+              , implementationVersion = showVersion version               , languageInfo = LanguageInfo                 { languageName = "haskell"                 , languageVersion = VERSION_ghc@@ -305,11 +319,21 @@                      , status = Ok                      }) --- Always assume that the code is complete, which allows for only--- single line inputs for now.-replyTo _ IsCompleteRequest{} replyHeader state = do-  let reply = IsCompleteReply { header = replyHeader, reviewResult = CodeComplete }+-- Check for a trailing empty line. If it doesn't exist, we assume the code is incomplete,+-- otherwise we assume the code is complete. Todo: Implement a mechanism that only requests+-- a trailing empty line, when multiline code is entered.+replyTo _ req@IsCompleteRequest{} replyHeader state = do+  isComplete <- isInputComplete+  let reply  = IsCompleteReply { header = replyHeader, reviewResult = isComplete }   return (state, reply)++  where+    isInputComplete = do+      let code = lines $ inputToReview req+      if nub (last code) == " "+         then return CodeComplete+         else return $ CodeIncomplete $ indent 4+    indent n = take n $ repeat ' '  replyTo _ req@CompleteRequest{} replyHeader state = do   let code = getCode req
src/IHaskell/Eval/Lint.hs view
@@ -187,7 +187,7 @@             _ -> "warning"      style :: String -> String -> String-    style =  printf "<div class=\"suggestion-${cls}\">%s</div>"+    style =  printf "<div class=\"suggestion-%s\">%s</div>"      named :: String -> String     named = printf "<div class=\"suggestion-name\" style=\"clear:both;\">%s</div>"
src/IHaskell/Flags.hs view
@@ -32,6 +32,7 @@               | GhcLibDir String    -- ^ Where to find the GHC libraries.               | KernelDebug         -- ^ Spew debugging output from the kernel.               | Help                -- ^ Display help text.+              | Version             -- ^ Display version text.               | ConvertFrom String               | ConvertTo String               | ConvertFromFormat NotebookFormat@@ -57,7 +58,7 @@   deriving (Eq, Show)  -- Which mode IHaskell is being invoked in.-data IHaskellMode = ShowHelp String+data IHaskellMode = ShowDefault String                   | InstallKernelSpec                   | ConvertLhs                   | Kernel (Maybe String)@@ -70,9 +71,7 @@   in case modeIndex of     Nothing ->       -- Treat no mode as 'console'.-      if "--help" `elem` flags-        then Left $ showText (Wrap 100) $ helpText [] HelpFormatAll ihaskellArgs-        else process ihaskellArgs flags+      process ihaskellArgs flags     Just 0 -> process ihaskellArgs flags      Just idx ->@@ -177,10 +176,12 @@  ihaskellArgs :: Mode Args ihaskellArgs =-  let descr = "Haskell for Interactive Computing."+  let noMode = mode "IHaskell" defaultReport descr noArgs [helpFlag, versionFlag]+      defaultReport = Args (ShowDefault helpStr) []+      descr = "Haskell for Interactive Computing."+      helpFlag = flagHelpSimple (add Help)+      versionFlag = flagVersion (add Version)       helpStr = showText (Wrap 100) $ helpText [] HelpFormatAll ihaskellArgs-      onlyHelp = [flagHelpSimple (add Help)]-      noMode = mode "IHaskell" (Args (ShowHelp helpStr) []) descr noArgs onlyHelp   in noMode { modeGroupModes = toGroup allModes }   where     add flag (Args mode flags) = Args mode $ flag : flags