Merge pull request #27 from khibino/ghc_option

Ghc option
This commit is contained in:
Kazu Yamamoto 2011-11-02 02:43:02 -07:00
commit ac6bcc5dd9
5 changed files with 21 additions and 17 deletions

View File

@ -28,4 +28,3 @@ check opt fileName = withGHC $ checkIt `gcatch` handleErrMsg
load LoadAllTargets load LoadAllTargets
liftIO readLog liftIO readLog
options = ["-Wall","-fno-warn-unused-do-bind"] ++ ghcOpts opt options = ["-Wall","-fno-warn-unused-do-bind"] ++ ghcOpts opt
++ map ("-i" ++) (checkIncludes opt)

View File

@ -26,7 +26,7 @@ usage = "ghc-mod version 1.0.0\n"
++ "\t ghc-mod list [-l]\n" ++ "\t ghc-mod list [-l]\n"
++ "\t ghc-mod lang [-l]\n" ++ "\t ghc-mod lang [-l]\n"
++ "\t ghc-mod browse [-l] [-o] <module> [<module> ...]\n" ++ "\t ghc-mod browse [-l] [-o] <module> [<module> ...]\n"
++ "\t ghc-mod check [-g GHC options] [-i inc] <HaskellFile>\n" ++ "\t ghc-mod check [-g GHC opt1 -g GHC opt2 ...] <HaskellFile>\n"
++ "\t ghc-mod type <HaskellFile> <module> <expression>\n" ++ "\t ghc-mod type <HaskellFile> <module> <expression>\n"
++ "\t ghc-mod info <HaskellFile> <module> <expression>\n" ++ "\t ghc-mod info <HaskellFile> <module> <expression>\n"
++ "\t ghc-mod lint [-h opt] <HaskellFile>\n" ++ "\t ghc-mod lint [-h opt] <HaskellFile>\n"
@ -40,7 +40,6 @@ defaultOptions = Options {
convert = toPlain convert = toPlain
, hlintOpts = [] , hlintOpts = []
, ghcOpts = [] , ghcOpts = []
, checkIncludes = []
, operators = False , operators = False
, packageConfs = [] , packageConfs = []
, useUserPackageConf = True , useUserPackageConf = True
@ -65,9 +64,6 @@ argspec = [ Option "l" ["tolisp"]
, Option "" ["no-user-package-conf"] , Option "" ["no-user-package-conf"]
(NoArg (\opts -> opts{ useUserPackageConf = False })) (NoArg (\opts -> opts{ useUserPackageConf = False }))
"do not read the user package database" "do not read the user package database"
, Option "i" ["include"]
(ReqArg (\i opts -> opts{ checkIncludes = i : checkIncludes opts }) "include")
"directory to include in search for modules"
] ]
parseArgs :: [OptDescr (Options -> Options)] -> [String] -> (Options, [String]) parseArgs :: [OptDescr (Options -> Options)] -> [String] -> (Options, [String])

18
README
View File

@ -20,5 +20,23 @@ or
(add-hook 'haskell-mode-hook (lambda () (ghc-init) (flymake-mode))) (add-hook 'haskell-mode-hook (lambda () (ghc-init) (flymake-mode)))
Changes:
If you have customized GHC import-path like follows,
(setq ghc-flymake-check-includes '("dir1" "dir2"))
You may update your settings as follows.
(setq ghc-ghc-options '("-idir1" "-idir2"))
or
(setq ghc-ghc-options '("-idir1:dir2"))
Now, you can simply pass GHC options to ghc-mod check command.
For more information, see: For more information, see:
http://www.mew.org/~kazu/proj/ghc-mod/ http://www.mew.org/~kazu/proj/ghc-mod/

View File

@ -14,7 +14,6 @@ data Options = Options {
convert :: [String] -> String convert :: [String] -> String
, hlintOpts :: [String] , hlintOpts :: [String]
, ghcOpts :: [String] , ghcOpts :: [String]
, checkIncludes :: [String]
, operators :: Bool , operators :: Bool
, packageConfs :: [FilePath] , packageConfs :: [FilePath]
, useUserPackageConf :: Bool , useUserPackageConf :: Bool

View File

@ -17,13 +17,6 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defcustom ghc-flymake-check-includes nil
"list of directories to include when checking file"
:type '(repeat string)
;; :risky nil
:require 'ghc-flymake
:group 'ghc-flymake)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defconst ghc-error-buffer-name "*GHC Errors*") (defconst ghc-error-buffer-name "*GHC Errors*")
@ -54,9 +47,8 @@
(if ghc-flymake-command (if ghc-flymake-command
(let ((hopts (ghc-mapconcat (lambda (x) (list "-h" x)) ghc-hlint-options))) (let ((hopts (ghc-mapconcat (lambda (x) (list "-h" x)) ghc-hlint-options)))
`(,@hopts "lint" ,file)) `(,@hopts "lint" ,file))
(let ((gopts (ghc-mapconcat (lambda (x) (list "-g" x)) ghc-ghc-options)) (let ((gopts (ghc-mapconcat (lambda (x) (list "-g" x)) ghc-ghc-options)))
(includes (ghc-mapconcat (lambda (x) (list "-i" x)) ghc-flymake-check-includes))) `(,@gopts "check" ,file))))
`(,@gopts "check" ,@includes ,file))))
(defun ghc-flymake-toggle-command () (defun ghc-flymake-toggle-command ()
(interactive) (interactive)