Skip to content

Commit e6bb036

Browse files
committed
Clear deleted files from hiedb
1 parent 2d60333 commit e6bb036

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

ghcide/session-loader/Development/IDE/Session.hs

+2
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,8 @@ runWithDb fp k = do
135135
`catch` \IncompatibleSchemaVersion{} -> removeFile fp
136136
withHieDb fp $ \writedb -> do
137137
initConn writedb
138+
-- Clear the index of any files that might have been deleted since the last run
139+
deleteMissingRealFiles writedb
138140
_ <- garbageCollectTypeNames writedb
139141
chan <- newTQueueIO
140142
withAsync (writerThread writedb chan) $ \_ -> do

ghcide/src/Development/IDE/Core/FileStore.hs

+5
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ module Development.IDE.Core.FileStore(
2020
import Development.IDE.GHC.Orphans()
2121
import Development.IDE.Core.Shake
2222
import Control.Concurrent.Extra
23+
import Control.Concurrent.STM (atomically)
24+
import Control.Concurrent.STM.TQueue (writeTQueue)
2325
import qualified Data.Map.Strict as Map
2426
import qualified Data.HashMap.Strict as HM
2527
import Data.Maybe
@@ -41,6 +43,7 @@ import Development.IDE.Types.Options
4143
import qualified Data.Rope.UTF16 as Rope
4244
import Development.IDE.Import.DependencyInformation
4345
import Ide.Plugin.Config (CheckParents(..))
46+
import HieDb.Create (deleteMissingRealFiles)
4447

4548
#ifdef mingw32_HOST_OS
4649
import qualified System.Directory as Dir
@@ -232,4 +235,6 @@ setSomethingModified state = do
232235
VFSHandle{..} <- getIdeGlobalState state
233236
when (isJust setVirtualFileContents) $
234237
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
235240
void $ shakeRestart state []

0 commit comments

Comments
 (0)