From 02af334b9409e54ed13ac3e395dbed63b546fb50 Mon Sep 17 00:00:00 2001 From: Kazu Yamamoto Date: Tue, 8 Apr 2014 13:56:33 +0900 Subject: [PATCH] imports Data.ByteString, System.FilePath, and System.Directory at booting. --- elisp/ghc-comp.el | 17 +++++++++++++---- src/GHCMod.hs | 20 ++++++++++++++++++-- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/elisp/ghc-comp.el b/elisp/ghc-comp.el index 69217ee..e070419 100644 --- a/elisp/ghc-comp.el +++ b/elisp/ghc-comp.el @@ -30,7 +30,7 @@ unloaded modules are loaded") ;; must be sorted (defconst ghc-reserved-keyword '("case" "deriving" "do" "else" "if" "in" "let" "module" "of" "then" "where")) -(defconst ghc-extra-keywords '("ByteString")) +(defconst ghc-extra-keywords '()) ;; was '("ByteString") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -56,11 +56,14 @@ unloaded modules are loaded") (defconst ghc-keyword-prefix "ghc-keyword-") (defvar ghc-keyword-Prelude nil) (defvar ghc-keyword-Control.Applicative nil) -(defvar ghc-keyword-Control.Monad nil) (defvar ghc-keyword-Control.Exception nil) +(defvar ghc-keyword-Control.Monad nil) +(defvar ghc-keyword-Data.ByteString nil) (defvar ghc-keyword-Data.Char nil) (defvar ghc-keyword-Data.List nil) (defvar ghc-keyword-Data.Maybe nil) +(defvar ghc-keyword-System.Directory nil) +(defvar ghc-keyword-System.FilePath nil) (defvar ghc-keyword-System.IO nil) (defvar ghc-loaded-module nil) @@ -73,11 +76,14 @@ unloaded modules are loaded") ;; hard coded in GHCMod.hs ghc-keyword-Prelude ghc-keyword-Control.Applicative - ghc-keyword-Control.Monad ghc-keyword-Control.Exception + ghc-keyword-Control.Monad + ghc-keyword-Data.ByteString ghc-keyword-Data.Char ghc-keyword-Data.List ghc-keyword-Data.Maybe + ghc-keyword-System.Directory + ghc-keyword-System.FilePath ghc-keyword-System.IO)) (vals (ghc-boot (length syms)))) (ghc-set syms vals)) @@ -86,11 +92,14 @@ unloaded modules are loaded") ;; hard coded in GHCMod.hs (ghc-merge-keywords '("Prelude" "Control.Applicative" - "Control.Monad" "Control.Exception" + "Control.Monad" + "Data.ByteString" "Data.Char" "Data.List" "Data.Maybe" + "System.Directory" + "System.FilePath" "System.IO")) (run-with-idle-timer ghc-idle-timer-interval 'repeat 'ghc-idle-timer)) diff --git a/src/GHCMod.hs b/src/GHCMod.hs index 2aa273c..e99b2e2 100644 --- a/src/GHCMod.hs +++ b/src/GHCMod.hs @@ -120,7 +120,8 @@ main = flip E.catches handlers $ do mods <- listModules opt cradle langs <- listLanguages opt flags <- listFlags opt - pre <- concat <$> mapM (browseModule opt cradle) preBrowsedModules + let opt' = addPackages opt + pre <- concat <$> mapM (browseModule opt' cradle) preBrowsedModules return $ mods ++ langs ++ flags ++ pre "help" -> return $ O.usageInfo usage argspec cmd -> E.throw (NoSuchCommand cmd) @@ -160,10 +161,25 @@ preBrowsedModules :: [String] preBrowsedModules = [ "Prelude" , "Control.Applicative" - , "Control.Monad" , "Control.Exception" + , "Control.Monad" + , "Data.ByteString" , "Data.Char" , "Data.List" , "Data.Maybe" + , "System.Directory" + , "System.FilePath" , "System.IO" ] + +preBrowsePackages :: [String] +preBrowsePackages = [ + "bytestring" + , "directory" + , "filepath" + ] + +addPackages :: Options -> Options +addPackages opt = opt { ghcOpts = pkgs ++ ghcOpts opt} + where + pkgs = map ("-package " ++) preBrowsePackages