File tree 2 files changed +7
-0
lines changed
session-loader/Development/IDE
2 files changed +7
-0
lines changed Original file line number Diff line number Diff line change @@ -135,6 +135,8 @@ runWithDb fp k = do
135
135
`catch` \ IncompatibleSchemaVersion {} -> removeFile fp
136
136
withHieDb fp $ \ writedb -> do
137
137
initConn writedb
138
+ -- Clear the index of any files that might have been deleted since the last run
139
+ deleteMissingRealFiles writedb
138
140
_ <- garbageCollectTypeNames writedb
139
141
chan <- newTQueueIO
140
142
withAsync (writerThread writedb chan) $ \ _ -> do
Original file line number Diff line number Diff line change @@ -20,6 +20,8 @@ module Development.IDE.Core.FileStore(
20
20
import Development.IDE.GHC.Orphans ()
21
21
import Development.IDE.Core.Shake
22
22
import Control.Concurrent.Extra
23
+ import Control.Concurrent.STM (atomically )
24
+ import Control.Concurrent.STM.TQueue (writeTQueue )
23
25
import qualified Data.Map.Strict as Map
24
26
import qualified Data.HashMap.Strict as HM
25
27
import Data.Maybe
@@ -41,6 +43,7 @@ import Development.IDE.Types.Options
41
43
import qualified Data.Rope.UTF16 as Rope
42
44
import Development.IDE.Import.DependencyInformation
43
45
import Ide.Plugin.Config (CheckParents (.. ))
46
+ import HieDb.Create (deleteMissingRealFiles )
44
47
45
48
#ifdef mingw32_HOST_OS
46
49
import qualified System.Directory as Dir
@@ -232,4 +235,6 @@ setSomethingModified state = do
232
235
VFSHandle {.. } <- getIdeGlobalState state
233
236
when (isJust setVirtualFileContents) $
234
237
fail " setSomethingModified can't be called on this type of VFSHandle"
238
+ -- Update database to remove any files that might have been renamed/deleted
239
+ atomically $ writeTQueue (indexQueue $ hiedbWriter $ shakeExtras state) deleteMissingRealFiles
235
240
void $ shakeRestart state []
You can’t perform that action at this time.
0 commit comments