@@ -32,14 +32,12 @@ import Control.Monad.Extra
32
32
import Control.Monad.IO.Class
33
33
import qualified Data.ByteString as BS
34
34
import Data.Either.Extra
35
- import qualified Data.HashMap.Strict as HM
36
35
import qualified Data.Map.Strict as Map
37
36
import Data.Maybe
38
37
import qualified Data.Rope.UTF16 as Rope
39
38
import qualified Data.Text as T
40
39
import Data.Time
41
40
import Data.Time.Clock.POSIX
42
- import Development.IDE.Core.OfInterest (OfInterestVar (.. ))
43
41
import Development.IDE.Core.RuleTypes
44
42
import Development.IDE.Core.Shake
45
43
import Development.IDE.GHC.Orphans ()
@@ -74,12 +72,9 @@ import Language.LSP.Server hiding
74
72
import qualified Language.LSP.Server as LSP
75
73
import Language.LSP.Types (DidChangeWatchedFilesRegistrationOptions (DidChangeWatchedFilesRegistrationOptions ),
76
74
FileChangeType (FcChanged ),
77
- FileEvent (FileEvent ),
78
75
FileSystemWatcher (.. ),
79
76
WatchKind (.. ),
80
- _watchers ,
81
- toNormalizedFilePath ,
82
- uriToFilePath )
77
+ _watchers )
83
78
import qualified Language.LSP.Types as LSP
84
79
import qualified Language.LSP.Types.Capabilities as LSP
85
80
import Language.LSP.VFS
@@ -170,18 +165,16 @@ resetInterfaceStore state f = do
170
165
deleteValue state GetModificationTime f
171
166
172
167
-- | 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 ()
174
170
resetFileStore ideState changes = mask $ \ _ -> do
175
171
-- we record FOIs document versions in all the stored values
176
172
-- 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
180
175
case c of
181
176
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
185
178
-> deleteValue (shakeExtras ideState) GetModificationTime nfp
186
179
_ -> pure ()
187
180
0 commit comments