@@ -13,27 +13,26 @@ module Development.IDE.Main
13
13
,Log (.. )
14
14
) where
15
15
import Control.Concurrent.Extra (withNumCapabilities )
16
- import Control.Concurrent.STM.Stats (atomically ,
17
- dumpSTMStats )
16
+ import Control.Concurrent.STM.Stats (dumpSTMStats )
18
17
import Control.Exception.Safe (SomeException ,
19
18
catchAny ,
20
19
displayException )
20
+ import Control.Lens (Bifunctor (.. ))
21
21
import Control.Monad.Extra (concatMapM , unless ,
22
22
when )
23
- import qualified Data.Aeson.Encode.Pretty as A
24
23
import Data.Coerce (coerce )
25
24
import Data.Default (Default (def ))
26
25
import Data.Foldable (traverse_ )
27
26
import Data.Hashable (hashed )
28
27
import qualified Data.HashMap.Strict as HashMap
28
+ import Data.IORef (readIORef )
29
+ import Data.List ((\\) )
29
30
import Data.List.Extra (intercalate ,
30
- isPrefixOf , nub ,
31
- nubOrd , partition )
31
+ isPrefixOf , nubOrd ,
32
+ partition )
32
33
import Data.Maybe (catMaybes , isJust )
33
34
import qualified Data.Text as T
34
- import Data.Text.Lazy.Encoding (decodeUtf8 )
35
- import qualified Data.Text.Lazy.IO as LT
36
- import Data.Typeable (typeOf )
35
+ import Debug.Trace (traceM )
37
36
import Development.IDE (Action ,
38
37
GhcVersion (.. ),
39
38
Priority (Debug , Error ),
@@ -47,20 +46,16 @@ import Development.IDE.Core.IdeConfiguration (IdeConfiguration (..)
47
46
import Development.IDE.Core.OfInterest (FileOfInterestStatus (OnDisk ),
48
47
kick ,
49
48
setFilesOfInterest )
50
- import Development.IDE.Core.Rules (GhcSessionIO (GhcSessionIO ),
51
- mainRule )
49
+ import Development.IDE.Core.Rules (mainRule )
52
50
import qualified Development.IDE.Core.Rules as Rules
53
51
import Development.IDE.Core.RuleTypes (GenerateCore (GenerateCore ),
54
52
GetHieAst (GetHieAst ),
55
- GhcSession (GhcSession ),
56
- GhcSessionDeps (GhcSessionDeps ),
57
53
TypeCheck (TypeCheck ))
58
54
import Development.IDE.Core.Service (initialise ,
59
55
runAction )
60
56
import qualified Development.IDE.Core.Service as Service
61
57
import Development.IDE.Core.Shake (IdeState (shakeExtras ),
62
58
IndexQueue ,
63
- ShakeExtras (state ),
64
59
shakeSessionInit ,
65
60
uses )
66
61
import qualified Development.IDE.Core.Shake as Shake
@@ -79,6 +74,7 @@ import qualified Development.IDE.Plugin.HLS.GhcIde as GhcIde
79
74
import qualified Development.IDE.Plugin.Test as Test
80
75
import Development.IDE.Session (SessionLoadingOptions ,
81
76
getHieDbLoc ,
77
+ ignoredFilesGlobalVar ,
82
78
loadSessionWithOptions ,
83
79
retryOnSqliteBusy ,
84
80
runWithDb ,
@@ -102,8 +98,7 @@ import Development.IDE.Types.Options (IdeGhcSession,
102
98
defaultIdeOptions ,
103
99
optModifyDynFlags ,
104
100
optTesting )
105
- import Development.IDE.Types.Shake (WithHieDb ,
106
- fromKeyType )
101
+ import Development.IDE.Types.Shake (WithHieDb )
107
102
import GHC.Conc (getNumProcessors )
108
103
import GHC.IO.Encoding (setLocaleEncoding )
109
104
import GHC.IO.Handle (hDuplicate )
@@ -113,8 +108,6 @@ import Ide.Plugin.Config (CheckParents (NeverCh
113
108
Config , checkParents ,
114
109
checkProject ,
115
110
getConfigFromNotification )
116
- import Ide.Plugin.ConfigUtils (pluginsToDefaultConfig ,
117
- pluginsToVSCodeExtensionSchema )
118
111
import Ide.PluginUtils (allLspCmdIds' ,
119
112
getProcessID ,
120
113
idePluginsToPluginDesc ,
@@ -125,10 +118,8 @@ import Ide.Types (IdeCommand (IdeComman
125
118
PluginId (PluginId ),
126
119
ipMap , pluginId )
127
120
import qualified Language.LSP.Server as LSP
128
- import qualified "list-t" ListT
129
121
import Numeric.Natural (Natural )
130
122
import Options.Applicative hiding (action )
131
- import qualified StmContainers.Map as STM
132
123
import qualified System.Directory.Extra as IO
133
124
import System.Exit (ExitCode (ExitFailure ),
134
125
exitWith )
@@ -414,9 +405,11 @@ defaultMain recorder Arguments{..} = withHeapStats (cmapWithPrio LogHeapStats re
414
405
results <- runAction " User TypeCheck" ide $ uses TypeCheck (map toNormalizedFilePath' files)
415
406
_results <- runAction " GetHie" ide $ uses GetHieAst (map toNormalizedFilePath' files)
416
407
_results <- runAction " GenerateCore" ide $ uses GenerateCore (map toNormalizedFilePath' files)
417
- let (worked, failed) = partition fst $ zip (map isJust results) files
408
+ let (worked, failedOrNone) = bimap (fmap snd ) (fmap snd ) . partition fst $ zip (map isJust results) files
409
+ ignoredFiles <- readIORef ignoredFilesGlobalVar
410
+ let failed = failedOrNone \\ ignoredFiles
418
411
when (failed /= [] ) $
419
- putStr $ unlines $ " Files that failed:" : map ((++) " * " . snd ) failed
412
+ putStr $ unlines $ " Files that failed:" : map ((++) " * " ) failed
420
413
421
414
let nfiles xs = let n = length xs in if n == 1 then " 1 file" else show n ++ " files"
422
415
putStrLn $ " \n Completed (" ++ nfiles worked ++ " worked, " ++ nfiles failed ++ " failed)"
0 commit comments