@@ -32,14 +32,12 @@ import Control.Monad.Extra
3232import Control.Monad.IO.Class
3333import qualified Data.ByteString as BS
3434import Data.Either.Extra
35- import qualified Data.HashMap.Strict as HM
3635import qualified Data.Map.Strict as Map
3736import Data.Maybe
3837import qualified Data.Rope.UTF16 as Rope
3938import qualified Data.Text as T
4039import Data.Time
4140import Data.Time.Clock.POSIX
42- import Development.IDE.Core.OfInterest (OfInterestVar (.. ))
4341import Development.IDE.Core.RuleTypes
4442import Development.IDE.Core.Shake
4543import Development.IDE.GHC.Orphans ()
@@ -74,12 +72,9 @@ import Language.LSP.Server hiding
7472import qualified Language.LSP.Server as LSP
7573import Language.LSP.Types (DidChangeWatchedFilesRegistrationOptions (DidChangeWatchedFilesRegistrationOptions ),
7674 FileChangeType (FcChanged ),
77- FileEvent (FileEvent ),
7875 FileSystemWatcher (.. ),
7976 WatchKind (.. ),
80- _watchers ,
81- toNormalizedFilePath ,
82- uriToFilePath )
77+ _watchers )
8378import qualified Language.LSP.Types as LSP
8479import qualified Language.LSP.Types.Capabilities as LSP
8580import Language.LSP.VFS
@@ -170,18 +165,16 @@ resetInterfaceStore state f = do
170165 deleteValue state GetModificationTime f
171166
172167-- | Reset the GetModificationTime state of watched files
173- resetFileStore :: IdeState -> [FileEvent ] -> IO ()
168+ -- Assumes the list does not include any FOIs
169+ resetFileStore :: IdeState -> [(NormalizedFilePath , FileChangeType )] -> IO ()
174170resetFileStore ideState changes = mask $ \ _ -> do
175171 -- we record FOIs document versions in all the stored values
176172 -- so NEVER reset FOIs to avoid losing their versions
177- OfInterestVar foisVar <- getIdeGlobalExtras (shakeExtras ideState)
178- fois <- readVar foisVar
179- forM_ changes $ \ (FileEvent uri c) -> do
173+ -- FOI filtering is done by the caller (LSP Notification handler)
174+ forM_ changes $ \ (nfp, c) -> do
180175 case c of
181176 FcChanged
182- | Just f <- uriToFilePath uri
183- , nfp <- toNormalizedFilePath f
184- , not $ HM. member nfp fois
177+ -- already checked elsewhere | not $ HM.member nfp fois
185178 -> deleteValue (shakeExtras ideState) GetModificationTime nfp
186179 _ -> pure ()
187180
0 commit comments