Commit Graph

695 Commits

Author SHA1 Message Date
Daniel Gröber
a0ae09a3e6 Give readProcess' more sensible error messages.
Also a bunch of refactoring for GhcModError
2014-08-28 15:57:49 +02:00
Daniel Gröber
a7f00931c5 Rename List.hs -> Modules.hs 2014-08-28 11:41:03 +02:00
Daniel Gröber
42c0e8f913 docs: Move GhcModError to right export category in Monad.hs 2014-08-24 14:19:56 +02:00
Alan Zimmerman
0944820dba CaseSplit panic sorted. closes https://github.com/kazu-yamamoto/ghc-mod/issues/336 2014-08-23 14:06:26 +02:00
Kazu Yamamoto
d045001eb7 Letting "ghc-mod dumpsym" work on non-cabal directories. 2014-08-20 15:31:26 +09:00
Kazu Yamamoto
190dc2ac51 try to fix Travis CI. 2014-08-20 11:59:44 +09:00
Kazu Yamamoto
9456ea426d fixing typos. 2014-08-19 17:18:36 +09:00
Kazu Yamamoto
a483f4f8b6 error messages are stored after NG, not printed in stderr. 2014-08-19 14:56:01 +09:00
Kazu Yamamoto
ad3a42844d Merge pull request #330 from DanielG/dev-error
Remove dedicated exception handling in `check` completely
2014-08-19 11:52:09 +09:00
Daniel Gröber
147dd90ee7 Remove dedicated exception handling in check completely
Exceptions are already caught at the top level so this is unnecessary.
2014-08-19 04:49:44 +02:00
Kazu Yamamoto
af6de8c849 Merge pull request #329 from DanielG/dev-error
Remove `withErrorHandler`, use `liftExceptions` instead
2014-08-19 11:41:44 +09:00
Daniel Gröber
1b5917c70e Remove withErrorHandler, use liftExceptions instead 2014-08-19 04:30:44 +02:00
Alejandro Serrano
5b78711842 Revert way to report errors when deferred as warnings
Fixes #310
2014-08-18 17:32:32 +02:00
Kazu Yamamoto
0fd8b9afd8 first try to resolve #322. 2014-08-18 16:55:41 +09:00
Kazu Yamamoto
5a657b9df8 removing warnings 2014-08-18 15:24:38 +09:00
Daniel Gröber
271ff4e162 Catch cabal configure failure properly 2014-08-18 08:06:36 +02:00
Daniel Gröber
f5d051dcef Remove toGhcModT it's not needed anymore. 2014-08-15 20:35:21 +02:00
Alejandro Serrano
10042c6b0c Fix for GHC 7.4 2014-08-15 11:00:48 +02:00
Alejandro Serrano
57db768ed0 Fix for GHC 7.4 2014-08-15 10:46:52 +02:00
Alejandro Serrano
f584bf5d5b Show error messages without qualification 2014-08-15 10:43:07 +02:00
Alejandro Serrano
6b62117381 Remove redundant typed hole warnings 2014-08-15 09:41:02 +02:00
Alejandro Serrano
7612229cc0 Keep all errors and warnings for code 2014-08-15 09:32:28 +02:00
Alejandro Serrano
fdbecdddce Make better check in presence of typed holes 2014-08-14 20:51:49 +02:00
Alejandro Serrano
890658f9cb Fix merge conflict, dropdown-list no longer needed 2014-08-14 18:02:58 +02:00
Daniel Gröber
bd28310e59 Don't fall back to sandbox if cabal file failes to parse 2014-08-12 00:02:39 +02:00
Daniel Gröber
b13465b588 Some docs in CabalConfig.hs 2014-08-11 23:48:15 +02:00
Daniel Gröber
fad99f466f Export GhcModError(..) 2014-08-06 20:40:11 +02:00
Daniel Gröber
9e4f1c9057 add note 2014-08-06 19:38:42 +02:00
Daniel Gröber
cb28e9ec8f Fix warning 2014-08-06 19:38:42 +02:00
Daniel Gröber
c98eb23bdf Clean up getSymbolTable a bit more 2014-08-06 19:38:42 +02:00
Daniel Gröber
459106a6d5 Clean up Find.hs a bit 2014-08-06 19:38:42 +02:00
Daniel Gröber
f311efd90c Rework GhcModT monad stack 2014-08-06 19:38:42 +02:00
Alejandro Serrano
43ac9036f9 Fixes on GHC < 7.8 2014-08-04 17:25:18 +02:00
Alejandro Serrano
d1a6618329 More package fixes for GHC < 7.8 2014-08-03 20:38:54 +02:00
Alejandro Serrano
d22e50d9e4 Small fix to compile in GHC < 7.8 2014-08-03 19:57:01 +02:00
Alejandro Serrano
9cc6476df1 Add better support for auto, with several options searched 2014-08-03 19:14:42 +02:00
Alejandro Serrano
3aa83e14dd Show more than one Djinn completion 2014-08-02 09:52:36 +02:00
Alejandro Serrano
31a7ce3d19 Merge remote-tracking branch 'kazu/master' 2014-08-01 17:08:50 +02:00
Alejandro Serrano
9161757f95 First attempt to add auto 2014-08-01 17:08:23 +02:00
Kazu Yamamoto
d1daf6def9 Merge pull request #296 from serras/master
Add refinement and better support for typed holes in Emacs mode
2014-08-01 15:14:50 +09:00
Kenta Sato
92651fbb26 interpret backslash-escaped characters at the line boundary 2014-07-30 12:03:58 +09:00
Alejandro Serrano
e3853a49f1 Add fix for GHC 7.4 2014-07-27 14:11:54 +02:00
Alejandro Serrano
f1d0436467 Remove case splitting for type families 2014-07-27 12:20:46 +02:00
Alejandro Serrano
9b500da4b8 Another try at case split for type families 2014-07-26 13:07:45 +02:00
Alejandro Serrano
9b38818f66 Merge remote-tracking branch 'kazu/master' 2014-07-24 20:21:44 +02:00
Alejandro Serrano
361fe24be0 Start case splitting on type families (NOT working) 2014-07-24 20:21:05 +02:00
Alejandro Serrano
d9c6638493 Work on initial signature for type families 2014-07-24 20:20:30 +02:00
Kazu Yamamoto
10ef20b967 Merge pull request #293 from DanielG/dev-exec-path
Fall back to getProgName when exeutable name is not available
2014-07-21 11:11:25 +09:00
Daniel Gröber
0736516512 Document exposed parts of GhcMod.Monad 2014-07-21 00:27:12 +02:00
Daniel Gröber
ba9c70dff7 Fall back to assuming ghc-mid is on PATH when exeutable name is not available 2014-07-20 23:50:32 +02:00
Alejandro Serrano
eb5ec73ae1 Complete parenthesis on refinement 2014-07-20 13:33:36 +02:00
Alejandro Serrano
54d10684b9 Merge remote-tracking branch 'kazu/master' 2014-07-20 10:45:28 +02:00
Alejandro Serrano
ae49eab547 First steps in refinement 2014-07-19 12:11:34 +02:00
Alejandro Serrano
60e97d4579 Merge remote-tracking branch 'kazu/master' 2014-07-19 10:13:19 +02:00
Kazu Yamamoto
981051a642 implementing fallback from Simple to Intelligent. 2014-07-19 11:53:05 +09:00
Kazu Yamamoto
5abd75ea7d fixing a infinite process loop. 2014-07-19 11:50:12 +09:00
Alejandro Serrano
6302d4882e Merge remote-tracking branch 'kazu/master'
Conflicts:
	Language/Haskell/GhcMod/Check.hs
	Language/Haskell/GhcMod/FillSig.hs
	Language/Haskell/GhcMod/GHCApi.hs
2014-07-18 17:12:52 +02:00
Alejandro Serrano
852d742796 Continue work on refinement 2014-07-18 17:09:02 +02:00
Kazu Yamamoto
0080f9b68c Internal exports extra Monad stuff. 2014-07-18 15:42:05 +09:00
Kazu Yamamoto
30ddd655cd export minimum Monad stuff from GhcMod. 2014-07-18 15:31:42 +09:00
Kazu Yamamoto
e1d9c3b881 clean up lookupSymbol. 2014-07-18 15:13:30 +09:00
Kazu Yamamoto
6d42354a5b setMode and getMode 2014-07-18 14:55:21 +09:00
Kazu Yamamoto
7b079896b1 doc sectioning. 2014-07-18 14:55:08 +09:00
Kazu Yamamoto
26316262aa converting GhcMonad to IOish. 2014-07-18 14:54:39 +09:00
Kazu Yamamoto
233f4cf05e moving setFlags to Gap. 2014-07-18 11:09:11 +09:00
Kazu Yamamoto
0ce70ae22d set Opt_SpecConstr just in case. 2014-07-18 10:52:57 +09:00
Daniel Gröber
3c04e78ba7 Don't rely on ghc-mod being in PATH 2014-07-17 16:17:17 +02:00
Daniel Gröber
3c1b560068 Short circuit export list when compiling spec 2014-07-17 16:15:02 +02:00
Daniel Gröber
4f0f5f09a6 Remove type Db it's only used once and makes things less clear 2014-07-17 15:54:59 +02:00
Daniel Gröber
e61aaed023 Make readProcess'more generic 2014-07-17 15:52:33 +02:00
Kazu Yamamoto
cffa7463eb adopting hlint's suggestions. 2014-07-17 17:16:44 +09:00
Kazu Yamamoto
05f45f1d36 adding error handling. 2014-07-17 14:40:35 +09:00
Kazu Yamamoto
cf0df26560 Monad.hs is now exported by GhcMod.hs. 2014-07-17 14:30:42 +09:00
Kazu Yamamoto
74e84e89ac deleting GhcMod.Ghc. 2014-07-17 14:04:28 +09:00
Alejandro Serrano
b21fa674ea Merge remote-tracking branch 'kazu/master' 2014-07-17 06:59:29 +02:00
Alejandro Serrano
c3722f7a20 Include 'refine' again 2014-07-17 06:59:10 +02:00
Kazu Yamamoto
409bc99f10 error handling for loadSymbolDb. 2014-07-17 12:37:38 +09:00
Kazu Yamamoto
cee1b83daa the first step to create SymbolDB via a file. 2014-07-17 11:57:19 +09:00
Alejandro Serrano
57bd408785 Merge remote-tracking branch 'kazu/master'
Conflicts:
	Language/Haskell/GhcMod.hs
	Language/Haskell/GhcMod/Check.hs
	Language/Haskell/GhcMod/FillSig.hs
	Language/Haskell/GhcMod/GHCApi.hs
	Language/Haskell/GhcMod/Ghc.hs
	src/GHCMod.hs
2014-07-16 19:01:43 +02:00
Alejandro Serrano
49437d82d9 Initial work on refining variable 2014-07-16 18:20:52 +02:00
Kazu Yamamoto
204d449aef set optimization level to 0 just in case. 2014-07-15 21:34:05 +09:00
Kazu Yamamoto
49284a64be Uses HscNothing and falls back to HscInterpreted if necessary (#205)
Two Test case are fails but it is not fatal.
2014-07-15 17:20:35 +09:00
Kazu Yamamoto
25730e2a6c trying to fix CI 2014-07-15 15:13:06 +09:00
Kazu Yamamoto
c87ea45488 adding #if to Monad.hs. 2014-07-15 14:45:41 +09:00
Kazu Yamamoto
0b71748708 moving #if to Gap.hs 2014-07-15 14:44:02 +09:00
Kazu Yamamoto
a7a02a3f4c Bringing back MaybeT
This brings back a warning to be fixed.
2014-07-15 12:49:12 +09:00
Kazu Yamamoto
86829561ab style only. 2014-07-15 12:41:10 +09:00
Kazu Yamamoto
84c3cec0f1 moving #if to Gap.hs. 2014-07-15 12:40:18 +09:00
Kazu Yamamoto
be9a67f02a moving #if to Gap.hs. 2014-07-15 12:29:27 +09:00
Kazu Yamamoto
1524d2a43e removing warnings. 2014-07-15 12:10:18 +09:00
Kazu Yamamoto
8495633dc8 explicitly specifying CompManager to ghcMode. 2014-07-15 12:06:07 +09:00
Kazu Yamamoto
89a4db2345 Merge pull request #288 from DanielG/dev-pkgs
Make `GhcMod` be `GhcModT (ErrorT IO)`
2014-07-15 11:49:10 +09:00
Daniel Gröber
686179f12b Fix building with ghc < 7.8 2014-07-15 02:34:07 +02:00
Daniel Gröber
7474a1b652 Bring back GhcMod but this time it's a GhcModT with an ErrorT inside 2014-07-15 01:04:06 +02:00
Daniel Gröber
f0bfcb8811 Use GhcModT everywhere and remove the GhcMod alias
Not doing this makes having GhcModT pretty pointless as users of the
library wouldn't be able to use custom inner monads as evey function for
dealing with GhcModT's would be constraint to (GhcModT IO) thus only
allowing IO as the inner monad.
2014-07-15 01:03:56 +02:00
Kazu Yamamoto
d98cedc9c0 Merge pull request #287 from DanielG/dev-untangle
Untangle Monad.hs and GHCApi.hs and some other changes
2014-07-12 14:27:43 +09:00
Daniel Gröber
b6896a481a Move initializeFlagsWithCradle to Monad.hs 2014-07-12 03:33:04 +02:00
Daniel Gröber
503e8cbe06 Move DynFlag related functions from GHCApi to another module 2014-07-12 02:57:19 +02:00
Daniel Gröber
81c58585a2 Add functions for dealing with packages, modules and bindings to GHCApi 2014-07-11 10:43:51 +02:00
Daniel Gröber
73bf4cbc4e Remove withGhc and withGhc', they're not used anymore. 2014-07-11 10:41:43 +02:00
Alejandro Cabrera
daada0d27e Fix GHC 7.8.3: MatchGroup now has 4 args
Rather than use a pattern match, this patch opts to explicitly extract
the fields of interest using where syntax. This keeps compatibility
across GHC 7.8 releases.

Ref: eeaea2df3f (diff-259092edcc59456f526cdef255c181d1L909)
2014-07-11 01:15:22 -04:00
Daniel Gröber
9f94bc863c Add Module type 2014-07-11 05:44:31 +02:00
Daniel Gröber
d818a64f6f whitespace 2014-07-11 04:51:27 +02:00
Daniel Gröber
320b2243a2 Make GhcMod a special case of GhcModT
i.e. turn GhcMod into a monad transformer
2014-07-11 04:51:11 +02:00
Daniel Gröber
56ad1a3c8c Control.Monad.Trans.MonadIO -> CoreMonad.MonadIO
they are different before ghc 7.8
2014-07-11 04:12:05 +02:00
Daniel Gröber
4b6a687bc1 Migrate the remaining parts of the exposed API to GhcMod a 2014-07-11 03:13:38 +02:00
Daniel Gröber
dc5ba6d00d Add newGhcModEnv for allowing multiple active sessions
Conflicts:
	Language/Haskell/GhcMod/Monad.hs
2014-07-10 21:14:47 +02:00
Alejandro Serrano
72679c619c Show more relevant bindings in typed holes 2014-07-06 09:45:02 +02:00
Daniel Gröber
86a7f954e3 Add a comment discouraging the use of toGhcMod in new code 2014-07-04 19:03:02 +02:00
Kazu Yamamoto
609ca52dee Merge branch 'serras-master' 2014-07-03 17:04:00 +09:00
Kazu Yamamoto
f2e20e3279 comments. 2014-07-03 14:26:39 +09:00
Kazu Yamamoto
640140608e layout. 2014-07-03 14:22:43 +09:00
Kazu Yamamoto
826d42f824 clean up macros. 2014-07-03 14:19:36 +09:00
Kazu Yamamoto
c13fdde2f8 importing Control.Monad.IO.Class explicity.
trying to resolve #277.
2014-07-03 12:50:46 +09:00
Alejandro Serrano
df258843d9 Fix missing OccName import for ghc 7.4 2014-07-02 17:18:03 +02:00
Alejandro Serrano
ccc21461b2 Fix missing import for ghc 7.4 2014-07-02 17:00:10 +02:00
Alejandro Serrano
c707eb4e8c Revert back change in MonadIO GhcMod 2014-07-01 17:56:59 +02:00
Alejandro Serrano
063ca80946 Fix compilation errors on ghc < 7.8 2014-07-01 17:43:13 +02:00
Alejandro Serrano
11acd93bf6 Try to fix for ghc < 7.8 2014-06-29 10:28:28 +02:00
Alejandro Serrano
c06ee75fbb Fix building errors on ghc < 7.8 and tests 2014-06-28 23:18:49 +02:00
Alejandro Serrano
1b66f65b48 Move lots of stuff to GhcMod
- Generalize many signatures to GhcMonad m
2014-06-28 21:43:51 +02:00
Alejandro Serrano
871f72fca4 Remove code with extensions not present < ghc 7.8 2014-06-27 19:32:05 +02:00
Alejandro Serrano
edfe0c8ef3 Cleaning of case splitting code 2014-06-27 19:06:20 +02:00
Alejandro Serrano
2ab6991d95 Move code to new FillSig module
- Clean up a lot of code
2014-06-27 18:38:15 +02:00
Alejandro Serrano
3ef1979f67 Case splitting works in Emacs! 2014-06-26 21:17:22 +02:00
Alejandro Serrano
40cd5b7deb Haskell part of case splitting working! 2014-06-25 18:09:24 +02:00
Alejandro Serrano
5fa536714f Initial code generation working
- Added fallback with haskell-src-exts
2014-06-22 18:03:34 +02:00
Alejandro Serrano
90abb89a98 Inserting instance initial body now works :) 2014-06-22 11:10:23 +02:00
Alejandro Serrano
a45fb4c6f5 Move case split and sig. generation to own files
- Created SrcUtils module for shared functionality
2014-06-21 11:38:44 +02:00
Alejandro Serrano
8c56d2e3c8 Obtain better information for case split 2014-06-18 21:01:22 +02:00
Alejandro Serrano
5a968225c3 Initial skeleton for case split in elisp 2014-06-17 18:15:36 +02:00
Alejandro Serrano
8a63ae078b Add missing cases for signatures 2014-06-16 22:10:01 +02:00
Alejandro Serrano
585c28f928 Initial implementation of instance completion 2014-06-11 22:01:43 +02:00
Alejandro Serrano
323c1b5471 Initial support for adding body from signature 2014-06-10 21:34:05 +02:00
Alejandro Serrano
cedf59ace7 Merge branch 'fix-typed-holes' 2014-06-10 17:09:46 +02:00
Alejandro Serrano
2f42d77b53 Add special cases for case splitting 2014-06-09 13:01:47 +02:00
Alejandro Serrano
c9b901f4f9 Fix problems with GHC's Typed Holes 2014-06-09 10:30:33 +02:00
Alejandro Serrano
0c445aa30f Work on case split variable naming 2014-06-08 14:23:06 +02:00
Alejandro Serrano
6854d417c0 Initial implementation of case splitting
- It doesn't handle vars correctly yet
2014-06-08 12:33:13 +02:00
Daniel Gröber
241c7946fc Revert "Fix tests for Cabal <= 1.16"
The problem the reverted commit tried to fix seems to have been just a
symptom of another root cause that was later fixed as the problem does
not seem to occur anymore even without this changeset also this
changeset broke cabal sandboxes with ghc < 7.8.

Fix #262

This reverts commit 8741323f5b.

Conflicts:
	Language/Haskell/GhcMod/GhcPkg.hs
2014-05-19 01:27:35 +02:00
Kazu Yamamoto
fcc3b46415 defining C macro if not defined. 2014-05-16 09:27:23 +09:00
Daniel Gröber
814ea60552 Types doesn't export convert anymore 2014-05-14 20:55:54 +02:00
Daniel Gröber
8324dd96ae Don't expose Convert 2014-05-14 18:54:56 +02:00
Daniel Gröber
80e2761f2f Ghc->GhcMod: finish Browse, Check 2014-05-14 18:05:40 +02:00
Daniel Gröber
ebfb740a2e Move convert to it's own module. 2014-05-14 17:06:30 +02:00
Daniel Gröber
f1535efcf2 Ghc -> GhcMod: Browse, Check 2014-05-14 17:06:29 +02:00
Daniel Gröber
e5c6d3e472 Start migrating Ghc -> GhcMod monad 2014-05-14 17:06:29 +02:00
Kohei Suzuki
ef375668d1 Suppress empty line 2014-05-11 00:30:02 +09:00
Daniel Gröber
96a85fe953 Copy readMaybe/readEither from base >= 4.7 for backwards compatibility 2014-05-10 13:43:46 +02:00
Daniel Gröber
5492f0c5d1 Add license headers for code copied from Cabal 2014-05-10 13:43:27 +02:00
Daniel Gröber
f949e4be7a Copy ComponentLocalBuildInfo from Cabal-1.18
This way `configDependencies` works even when the Cabal version used by
cabal-install is later than the one used by ghc-mod.
2014-05-10 02:04:09 +02:00
Daniel Gröber
13930a9d7d Fix Cabal >= 1.18 2014-05-09 21:12:52 +02:00
Daniel Gröber
175635505d Fix warnings 2014-05-09 20:44:33 +02:00
Daniel Gröber
8741323f5b Fix tests for Cabal <= 1.16 2014-05-09 20:37:15 +02:00
Daniel Gröber
d1da6ab289 Make getSystemLibDir use GHC.Paths instead of running ghc 2014-05-09 20:36:20 +02:00
Daniel Gröber
b8f9498f83 Fix reading of older Cabal setup-configs 2014-05-09 20:35:13 +02:00
Kazu Yamamoto
2e3b172b0e enabling -fno-warn- (#246). 2014-05-09 23:45:34 +09:00
Daniel Gröber
fae4730ba5 Import HscTypes (HscEnv) with ghc <= 7.2 2014-05-08 13:14:44 +02:00
Daniel Gröber
a7b2c86985 Fall back to Cabal 1.16 format on runtime if extracting fails 2014-05-08 12:59:52 +02:00
Daniel Gröber
4c93819da8 Fix ghc-7.8 2014-05-08 11:50:51 +02:00
Daniel Gröber
7b8540add1 Add support for getting pkgDeps with Cabal <= 1.16 2014-05-08 11:32:40 +02:00
Kazu Yamamoto
b7d92417bc HasDynFlags is provided after 7.6. 2014-05-08 17:01:01 +09:00
Kazu Yamamoto
cc3e728f03 fixing comment. 2014-05-08 16:51:15 +09:00
Daniel Gröber
61207c13d3 Add MonadIO instance for RWST 2014-05-08 08:36:18 +02:00
Kazu Yamamoto
8561e7b656 To break cyclic import, this patch makes GhcPkg.hs independent from Monad.hs(refactoring for #244)
This removes `ghcPkgList`, `ghcPkgListEx` and `ghcPkgDbOpt`. I'm not sure
this is a right way to do.
2014-05-08 12:42:45 +09:00
Kazu Yamamoto
f199ea9e2e removing warnings. 2014-05-08 10:49:40 +09:00
Daniel Gröber
5044cf7f56 Fix warnings 2014-05-05 09:43:14 +02:00
Daniel Gröber
635830b527 Fix #242, ghcPkgList(Ex) on NixOS 2014-05-05 00:29:10 +02:00
Daniel Gröber
ea427d60ba note: MonadIO class 2014-05-04 04:57:38 +02:00
Daniel Gröber
c50b4f5a38 ghc-mod deserves it's own monad
Having to call `findCradle` and `initializeFlagsWithCradle` everywhere
we interact with ghc-mod's API doesn't seem very Haskell-like to me I
think we should provide a Monad that has a run function that already
does all those tedious tasks for us.

The `GhcMod` monad is basically a wrapper around `RWST r w s IO` with an
instance for `GhcMonad`

Having a `Reader` allows us to pass `Options` to runGhcMod and not have
to worry about passing it everywhere, `Cradle` is also stored in the
reader environment on initialization.

Writer and State are just there for future use.

I've included a `toGhcMod` function that turns a `Ghc a` into a `GhcMod
a` this will make it easy to transition everyting to using the `GhcMod`
monad instead of `Ghc` without breaking the build or test suite for
extended periods of time.

Conflicts:
	ghc-mod.cabal
2014-05-04 04:57:38 +02:00
Daniel Gröber
096a56e660 Hide catch from Prelude 2014-05-04 04:57:38 +02:00
Daniel Gröber
4e4d27e62d Use componentsConfigs instead of configDependencies
`configDependencies` was added in Cabal-1.20 but we're using 1.18 on travis.
2014-05-04 04:57:38 +02:00
Daniel Gröber
9d9f66e942 Remove Maybe from cabalConfigDependencies and fromInstalledPackageId 2014-05-04 04:57:38 +02:00
Daniel Gröber
0c859294a3 Parse cabal setup-config to get depencencies 2014-05-03 15:36:10 +02:00
Daniel Gröber
19b56738c6 Add withDirectory_ to Utils 2014-05-03 15:36:10 +02:00
Daniel Gröber
aec46dbd51 Factor out readProcess' 2014-05-03 15:36:10 +02:00
Daniel Gröber
77605c6daf Add fromInstalledPackageId 2014-05-03 15:36:10 +02:00
Kazu Yamamoto
14f5768c90 doc. 2014-04-30 10:51:34 +09:00
Kazu Yamamoto
186485577d bootInfo as API. 2014-04-30 10:49:25 +09:00
Kazu Yamamoto
d007fa817a better names. 2014-04-28 21:59:54 +09:00
Kazu Yamamoto
a1aa44bdbb doc. 2014-04-28 21:51:39 +09:00
Kazu Yamamoto
913fb72911 ErrMsg -> Logger. 2014-04-28 21:47:08 +09:00
Kazu Yamamoto
0155cf5e5f style. 2014-04-28 21:43:24 +09:00
Kazu Yamamoto
d68690bab0 removing LogReader. 2014-04-28 21:41:29 +09:00
Kazu Yamamoto
411a584bb8 using check finally. 2014-04-28 16:31:28 +09:00
Kazu Yamamoto
9bc25046e3 rescue old GHCs. 2014-04-28 14:36:55 +09:00
Kazu Yamamoto
ae75872638 fixing regression. 2014-04-28 14:36:46 +09:00
Kazu Yamamoto
662842a085 clean up Gap. 2014-04-28 14:13:25 +09:00
Kazu Yamamoto
adb4addd54 707 -> 708. 2014-04-28 14:04:18 +09:00
Kazu Yamamoto
fc570551a2 withLogger handles errors. 2014-04-28 13:52:28 +09:00
Kazu Yamamoto
000076223f removing the third argument from initializeFlagsWithCradle. 2014-04-28 13:00:25 +09:00
Kazu Yamamoto
117d01a52a removing -Wall and -w:. 2014-04-28 12:52:09 +09:00
Kazu Yamamoto
f413cda0fe one more try. 2014-04-28 11:26:06 +09:00
Kazu Yamamoto
6a7955679a rescue old GHCs. 2014-04-28 09:28:57 +09:00
Kazu Yamamoto
2733f94a52 rescue old GHCs. 2014-04-28 09:00:03 +09:00
Kazu Yamamoto
017d4cc22f don't use InteractiveImport for old GHCs.. 2014-04-27 22:48:24 +09:00
Kazu Yamamoto
dede115731 defining withContext. 2014-04-27 21:26:03 +09:00
Kazu Yamamoto
64365807f9 refactoring. 2014-04-26 23:03:50 +09:00
Kazu Yamamoto
98d3c7028c refactoring. 2014-04-26 22:51:29 +09:00
Kazu Yamamoto
9c7c6a5cf9 refactoring. 2014-04-26 21:59:06 +09:00
Kazu Yamamoto
6b63cb7098 doc. 2014-04-26 20:24:47 +09:00
Kazu Yamamoto
c45415a367 cleaning up check, splice flag and logger. 2014-04-26 17:54:15 +09:00
Kazu Yamamoto
74cde29ae0 refactoring setTargetFiles. 2014-04-26 14:38:49 +09:00
Kazu Yamamoto
c1c0993b4a import DynFlag only in Gap. 2014-04-26 13:21:22 +09:00
Kazu Yamamoto
c8fbdcfa2f Thanks to DeferTypeErrors, info/type can work even if the file contains errors. 2014-04-26 11:43:30 +09:00
Kazu Yamamoto
66a5123f8c rescue old Cabal which does not support bench. 2014-04-26 09:22:42 +09:00
Daniel Gröber
8ac39a3378 Add benchmarks to cabalAllBuildInfo 2014-04-25 20:48:20 +02:00
Kazu Yamamoto
f50e5229c4 NG contains an error. 2014-04-25 11:08:29 +09:00
Kazu Yamamoto
13c5c2c5af doc. 2014-04-24 22:11:06 +09:00
Kazu Yamamoto
6cca65b11e ghc-mod find (#203). 2014-04-24 21:08:45 +09:00
Kazu Yamamoto
390c509144 find functions went to lib. 2014-04-24 17:02:50 +09:00
Kazu Yamamoto
4074c3d751 error handling for modules. 2014-04-24 12:51:43 +09:00
Kazu Yamamoto
93dadfef44 error handling for browse. 2014-04-24 12:45:47 +09:00
Kazu Yamamoto
2d1133ea8e exporting necessary types. 2014-04-24 12:17:50 +09:00
Kazu Yamamoto
e49fef6765 setTargetFiles now loads files. 2014-04-24 12:15:59 +09:00
Kazu Yamamoto
0c1469e53c <package>:<module> style.
refactoring for #159.
2014-04-24 11:26:30 +09:00
Kazu Yamamoto
79946f9a3d removing withGHCDummyFile. 2014-04-23 16:37:24 +09:00
Kazu Yamamoto
3b3b767556 Merge branch 'dev-dynflags' of https://github.com/DanielG/ghc-mod into DanielG-dev-dynflags
Conflicts:
	Language/Haskell/GhcMod/GHCApi.hs
2014-04-23 12:20:18 +09:00
Kazu Yamamoto
44ece2dcb9 Merge branch 'master' of github.com:kazu-yamamoto/ghc-mod 2014-04-23 12:04:00 +09:00
Daniel Gröber
c9ca3a6d76 Clean up DynFlags initialization 2014-04-23 04:04:41 +02:00
Daniel Gröber
dc43d600dc Remove Alternative class constraint from withGhc 2014-04-23 03:43:53 +02:00
Kazu Yamamoto
b8a151421d removing fixme. 2014-04-22 12:34:35 +09:00
Kazu Yamamoto
b3fd99fa7d using Builder. 2014-04-22 11:28:27 +09:00
Kazu Yamamoto
4764ff1acb ghc-modi boot. 2014-04-21 16:30:31 +09:00
Kazu Yamamoto
152b218813 hlint hack. 2014-04-21 16:12:30 +09:00
Kazu Yamamoto
8983cf2d88 lineSeparator are only used in toList/toPlain. 2014-04-21 15:58:36 +09:00
Kazu Yamamoto
3d03cff06b refactoring for lineSeparator. 2014-04-21 14:58:25 +09:00
Kazu Yamamoto
b2c2d1a443 cleaning up APIs. 2014-04-21 14:04:58 +09:00
Kazu Yamamoto
1006cd4eec APIs in Ghc monad now go to GHCMod.Ghc. 2014-04-21 12:51:56 +09:00
Kazu Yamamoto
2f55a19d49 cleaning up APIs. 2014-04-21 12:46:14 +09:00
Kazu Yamamoto
df4dd97e48 ghc-mod debug does not need a file. 2014-04-21 11:31:15 +09:00
Kazu Yamamoto
12dac1f0a5 ghc-mod root does not need a file. 2014-04-21 11:22:39 +09:00
Kazu Yamamoto
756d17eaa2 -l for ghc-modi info. 2014-04-21 09:45:41 +09:00
Kazu Yamamoto
e09b406ee8 ToString String and doctest. 2014-04-21 09:45:00 +09:00
Kazu Yamamoto
3c8fea85fb dropWhileEnd moves to Utils. 2014-04-19 15:20:16 +09:00
Kazu Yamamoto
82b6519935 removing suppress stuff. 2014-04-19 15:17:36 +09:00
Kazu Yamamoto
841c721928 -l for lint. 2014-04-19 08:36:35 +09:00
Kazu Yamamoto
ab5e082e81 --quiet back (#226). 2014-04-19 08:26:30 +09:00
Daniel Gröber
8f3fb2a7d7 Only supress stderr on success 2014-04-18 13:22:31 +02:00
Kazu Yamamoto
4389dea800 -l for check. 2014-04-18 17:28:12 +09:00
Kazu Yamamoto
9a6c84410d close import. 2014-04-18 16:17:46 +09:00
Kazu Yamamoto
f2081466fc Using Hidden also. (#223) 2014-04-18 16:12:21 +09:00
Kazu Yamamoto
aecb9bc1e4 implementing suppressStdout/err. 2014-04-18 15:41:32 +09:00
Daniel Gröber
bd2db5e98e Dont use Applicative ReadP instance 2014-04-18 04:00:01 +02:00
Daniel Gröber
2381f6e1ab More refactoring of package handling
- 'GhcPkg' now parses 'ghc-pkg -v list' output directly to also get the
  package-id

- Remove unused field 'cradlePackages' in Cradle

- Remove 'getPackageDbPackages' and use 'ghcPkgListEx' instead
2014-04-18 03:59:46 +02:00
satoshi-murakumo
0eadfa91fd Fix windows tempfile handling
On Windows, `ghc-mod lint` fails with following message.

    ghc-mod: DeleteFile "<Ommit>\\Temp\\ghc-mod-hlint8464": permission denied <Ommit>

Perhaps, On Windows, GHC opens file exclusively.
So, we move `removeFile` to `finally`.
2014-04-16 22:41:53 +09:00
Kazu Yamamoto
abb9ecd8ac style. 2014-04-16 11:59:00 +09:00
Kazu Yamamoto
145c27a129 hlint hack. 2014-04-16 11:52:49 +09:00
Kazu Yamamoto
cd56e26b25 just style. 2014-04-16 11:50:31 +09:00
Kazu Yamamoto
697ad3722a removing warnings. 2014-04-16 11:32:36 +09:00
Kazu Yamamoto
2dc1eb645a Merge branch 'dev' of git://github.com/DanielG/ghc-mod into DanielG-dev 2014-04-16 11:24:39 +09:00
Daniel Gröber
bb438feb83 User ghc's cProjectVersionInt to get version information 2014-04-16 01:57:52 +02:00
Daniel Gröber
7d75787ae3 Only add available package to ghc options
Fixes #185
2014-04-15 05:18:42 +02:00
Daniel Gröber
30b8366526 Refactor the way packages databases are handled
- cradle now stores a list of active package databases instead of only
  the user store (if present).

- rename `cradlePackageDb` -> `cradlePkgDbStack` as that`s what the ghc
  documentaion calls this kind of thing

- `getPackageDbPackages` now returns names of all visible packages in
  the given directory. Also the implementation now uses `ghc-pkg`
  instead of manually looking at the package database
2014-04-15 05:15:50 +02:00
Kazu Yamamoto
8f5498c554 refactoring. 2014-04-11 14:59:31 +09:00
Kazu Yamamoto
a0d559de61 clarifying Ghc and IO. 2014-04-11 13:14:45 +09:00
Kazu Yamamoto
998a43ce24 removing depanal. 2014-04-11 12:56:06 +09:00
Kazu Yamamoto
196450af9f simplifying modSummary. 2014-04-11 12:41:39 +09:00
Kazu Yamamoto
3ed59464f0 just style. 2014-04-11 12:21:58 +09:00
Kazu Yamamoto
862e8c397c refactoring. 2014-04-11 12:19:42 +09:00
Kazu Yamamoto
dd8f9a5fcb refactoring. 2014-04-11 11:54:39 +09:00
Kazu Yamamoto
e9859980ab info/type does not require module name.
Fallback was removed. See #199.
2014-04-11 11:51:25 +09:00
Kazu Yamamoto
54bea65736 style change. 2014-04-11 11:15:59 +09:00
Kazu Yamamoto
ba4a1b9688 removing unnecessary code. 2014-04-11 11:13:24 +09:00
Kazu Yamamoto
1d2cf4cb9f fixing the fallback mechanism for info. 2014-04-11 11:02:05 +09:00
Kazu Yamamoto
d6a81c0506 refactoring. 2014-04-10 16:41:05 +09:00
Kazu Yamamoto
d6762ede6e fixing typos. 2014-04-10 16:36:15 +09:00
Kazu Yamamoto
770644e87d debug also displays sys lib dir. 2014-04-09 15:15:26 +09:00
Kazu Yamamoto
89c733aef8 hlint hack. 2014-04-03 16:17:51 +09:00
Kazu Yamamoto
a6579c656b Displaying a qualified name if two unqualified names are conflict (#130). 2014-04-03 09:49:23 +09:00
Kazu Yamamoto
159b7b1eb6 don't use hiding. 2014-03-31 12:31:21 +09:00
Kazu Yamamoto
3bfbbb8b5c supporting sandbox only (without cabal) to fix #164. 2014-03-30 17:28:57 +09:00
Kazu Yamamoto
5e01a45218 removing dep packages of benchmark.
installing packages of benchmark fails in many cases, sigh.
2014-03-30 15:07:14 +09:00
Kazu Yamamoto
983fc68f5b handling multiple package names from ghc-pkg find-module. 2014-03-30 12:37:29 +09:00
Kazu Yamamoto
f8249ae449 removing comment. 2014-03-28 13:47:33 +09:00
Kazu Yamamoto
955b1b4091 user package db options for both GHC and ghc-pkg. 2014-03-28 12:05:11 +09:00
Kazu Yamamoto
1f7e7dea3b adding doc. 2014-03-28 11:10:18 +09:00
Kazu Yamamoto
f7f1e081c5 adding dumpSplicesFlag. 2014-03-27 20:54:18 +09:00
Kazu Yamamoto
5dbea7b909 error handling for doc. 2014-03-27 16:40:34 +09:00
Kazu Yamamoto
187f718de0 hlint hack. 2014-03-27 16:35:41 +09:00
Kazu Yamamoto
992013df05 hlint hack. 2014-03-27 16:31:49 +09:00
Kazu Yamamoto
fb08870d72 hlint hack. 2014-03-27 16:29:59 +09:00
Kazu Yamamoto
2dd7bab9b2 packageDoc for sandbox. 2014-03-27 16:22:49 +09:00
Kazu Yamamoto
5f6adb53f2 close import. 2014-03-27 16:02:16 +09:00
Kazu Yamamoto
ff70313049 close import. 2014-03-27 15:56:14 +09:00
Kazu Yamamoto
f24749b13b close import. 2014-03-27 15:45:51 +09:00
Kazu Yamamoto
c9429cfc97 close import. 2014-03-27 15:43:33 +09:00
Kazu Yamamoto
b628175d8f close import. 2014-03-27 15:32:44 +09:00
Kazu Yamamoto
e0d8b379df close import. 2014-03-27 15:25:02 +09:00
Kazu Yamamoto
fbed91f6f2 close import. 2014-03-27 15:23:27 +09:00
Kazu Yamamoto
426917fc44 close import. 2014-03-27 15:21:18 +09:00
Kazu Yamamoto
0a323f71b9 close import. 2014-03-27 15:17:58 +09:00
Kazu Yamamoto
660a1e95f5 using liftIO from CoreMonad. 2014-03-27 15:08:07 +09:00
Kazu Yamamoto
4fd7224c9c closed import. 2014-03-27 14:38:06 +09:00
Kazu Yamamoto
d3d9eb1e2c Data.ByteString cannot be loaded if not specified in cabal file. 2014-03-27 14:24:38 +09:00
Kazu Yamamoto
7141ec5db1 removing "import Prelude". 2014-03-27 13:50:09 +09:00
Kazu Yamamoto
4ad1c5e276 exporting lint. 2014-03-27 10:34:30 +09:00
Kazu Yamamoto
6e4d073c7d using dropWhileEnd (#193). 2014-03-26 15:38:02 +09:00
Kazu Yamamoto
e3a177c20f Merge pull request #194 from eagletmt/hlint-quiet
Suppress output of hlint
2014-03-26 15:09:03 +09:00
Kazu Yamamoto
782da60d0c adding docs. 2014-03-26 12:09:02 +09:00
Kazu Yamamoto
60b0a055f7 removing warning. 2014-03-26 11:54:34 +09:00
Kazu Yamamoto
102ae7654b removing the last null charactors.
WARNING: prabably breaking backward compatibility.
2014-03-26 11:32:54 +09:00
Kazu Yamamoto
38a3e32ac3 browseAll. 2014-03-25 11:14:16 +09:00
Kohei Suzuki
44eff0dcc1 Suppress output of hlint 2014-03-21 21:40:02 +09:00
Kazu Yamamoto
d0a10277bf make ghc-modi robust. 2014-03-20 17:40:06 +09:00
Kazu Yamamoto
ee6dc2fc47 ghc-mod root. 2014-03-20 16:21:48 +09:00
Kazu Yamamoto
31ce0999a1 "debug" displyas a root dir. 2014-03-19 15:01:32 +09:00
Kazu Yamamoto
be926f0366 new APIs. 2014-03-19 10:23:32 +09:00
Kazu Yamamoto
710ac6636e cleaning up the logger. 2014-03-18 12:38:04 +09:00
Kazu Yamamoto
dd7b7b8305 the first step to make ghc-mod independent from GHC's version. 2014-03-17 16:58:55 +09:00
Kazu Yamamoto
16e050439d removing fast/slow code. 2014-03-17 15:56:00 +09:00
Kazu Yamamoto
1ae10600e7 hlint does not support --quiet anymore. 2014-03-13 11:09:55 +09:00
Kazu Yamamoto
48faeac83a removing a warning. 2014-02-06 22:12:07 +09:00
Kazu Yamamoto
fb0222ff76 burying the gap. 2014-02-06 22:09:00 +09:00
Kazu Yamamoto
891ddf639b supporting GHC 7.8rc1. (#186)
from @bartavelle.
2014-02-06 21:40:51 +09:00
Kazu Yamamoto
45154e6eb1 implementing fromTyThing. 2014-02-06 21:34:40 +09:00
Kazu Yamamoto
629cf409ae layout only. 2014-02-06 21:27:39 +09:00
Kazu Yamamoto
a25736f149 Revert "Expose packages in sandbox with their ids"
This reverts commit 46492a19b0.
2014-02-01 13:44:40 +09:00
Naohiro Aota
46492a19b0 Expose packages in sandbox with their ids
This commit implement scaning a package db directory to collect package
id

If you installed a package both in a sandbox and globally, global
package may be selected even if there's a package in a sandbox, which is
different behavior from cabal sandbox.

e.g. when you have fast-logger-2.0 globally and fast-logger-0.3.3 in a
sandbox:

(Without patch)
$ ghc-mod check Foundation.hs
Foundation.hs:12:31:Module `System.Log.FastLogger' does not export `Logger'

(With patch)
$ ghc-mod check Foundation.hs
2014-01-30 21:21:40 +09:00
Naohiro Aota
04022ab0ac Add test to check package id extraction
This commit add a failing test to check extracting package id. The test will
fail with the following output for now:

1) Cradle.getPackageDbPackages find a config file and extracts packages with their ids
expected: [("template-haskell",Just "template-haskell-2.8.0.0-32d4f24abdbb6bf41272b183b2e23e9c")]
 but got: []
2014-01-30 21:18:45 +09:00
Naohiro Aota
a0db24b0a5 Extend Package to include id
This commit
1. rename Package with PackageBaseName
2. Pacakge = (PackageBaseName, Maybe String) to save its id
3. Expose packages with id if available
2014-01-30 20:45:30 +09:00
Kazu Yamamoto
cf0180ed53 Merge pull request #182 from eagletmt/fix-for-ghc-7.7.20140110
Pretty.showDocWith disappeard at GHC 7.7.20140110
2014-01-13 23:24:43 -08:00
Kohei Suzuki
b51072f5f0 Pretty.showDocWith disappeard at GHC 7.7.20140110 2014-01-14 15:37:16 +09:00
Kohei Suzuki
0efd848924 GHC 7.2.2 also has fWarningFlags and fLangFlags 2014-01-14 15:25:06 +09:00
Kazu Yamamoto
2681dc3519 fix for GHC 7.2.x. 2014-01-08 22:16:10 +09:00
Kazu Yamamoto
d9ff2241bd closed import. 2014-01-08 12:03:32 +09:00
Kazu Yamamoto
1e7eeff41c cleaning up warnings. 2014-01-08 09:55:06 +09:00
Scott West
33ddaf67aa Updating Gap to the GHC 7.7 trunk API. 2014-01-07 18:11:20 +01:00
Kazu Yamamoto
831fc67c8c Merge branch 'ghci-style-load2' of github.com:khorser/ghc-mod into khorser-ghci-style-load2
Conflicts:
	Language/Haskell/GhcMod/Browse.hs
2013-11-20 14:28:20 +09:00
Sergey Khorev
429cdfa83b Try loading a module if findModule failed for it 2013-11-20 08:57:45 +04:00
Kazu Yamamoto
0cbf4855b8 Merge branch 'qualified-module-name' of git://github.com/mvoidex/ghc-mod into mvoidex-qualified-module-name 2013-11-19 14:24:49 +09:00
Kazu Yamamoto
19d2521f5f Merge pull request #159 from mvoidex/master
Added project opt to specify module package-id
2013-11-18 21:06:28 -08:00
Kazu Yamamoto
41da5cc505 defining deSugar. 2013-11-19 12:54:08 +09:00
Kazu Yamamoto
13738d4391 defining typeForUser. 2013-11-19 12:35:42 +09:00
Kazu Yamamoto
7fbd983172 defining errorMsgSpan. 2013-11-19 12:28:59 +09:00
Kazu Yamamoto
5097ef84e4 removing trailing WS. 2013-11-19 10:42:47 +09:00
Schell Scivally
e5ee3da399 CPP corrections. 2013-11-19 10:30:43 +09:00
Schell Scivally
aedc11f21c Added conditional CPP. 2013-11-19 10:30:31 +09:00
Schell Scivally
b8e20d8e2e Compatibility with ghc API >= 7.7 2013-11-19 10:30:18 +09:00
mvoidex
97c2c62c31 Local function rewritten to use justIf 2013-11-18 18:22:49 +04:00
mvoidex
444dd225e1 Added -q option to list fully qualified names with browse command 2013-11-17 22:31:47 +04:00
mvoidex
d4505041a9 Added project opt to specify module package-id 2013-10-29 20:48:27 +04:00
Kazu Yamamoto
dfecb22123 Merge branch 'master' of git://github.com/mvoidex/ghc-mod into mvoidex-master
Conflicts:
	Language/Haskell/GhcMod/List.hs
2013-10-29 11:32:06 +09:00
mvoidex
94de367220 List modules with its packages 2013-10-28 12:22:18 +04:00
Kazu Yamamoto
d8275263f0 typo. 2013-10-02 12:43:40 +09:00
Kohei Suzuki
136e09e704 ghc-mod browse should take care of sandboxes 2013-09-27 12:25:41 +09:00
Kohei Suzuki
67166a4d75 ghc-mod list should take care of sandboxes 2013-09-27 12:23:53 +09:00
Alan Zimmerman
bdc2b96ae1 Need to validate test paths too 2013-09-21 17:26:55 +02:00
Alan Zimmerman
54bb83e972 Must explicitly find the full path for an exe target 2013-09-21 16:08:45 +02:00
Alan Zimmerman
93195cb780 Return correct values for cabalAllTargets. 2013-09-21 14:01:43 +02:00