File tree Expand file tree Collapse file tree 2 files changed +17
-3
lines changed
ghcide/src/Development/IDE Expand file tree Collapse file tree 2 files changed +17
-3
lines changed Original file line number Diff line number Diff line change 88-- open in the editor. The rule is 'IsFileOfInterest'
99module Development.IDE.Core.OfInterest (
1010 ofInterestRules ,
11+ getFilesOfInterest ,
1112 getFilesOfInterestUntracked ,
1213 addFileOfInterest ,
1314 deleteFileOfInterest ,
@@ -58,6 +59,11 @@ ofInterestRules = do
5859------------------------------------------------------------
5960-- Exposed API
6061
62+ getFilesOfInterest :: IdeState -> IO ( HashMap NormalizedFilePath FileOfInterestStatus )
63+ getFilesOfInterest state = do
64+ OfInterestVar var <- getIdeGlobalState state
65+ readVar var
66+
6167-- | Set the files-of-interest - not usually necessary or advisable.
6268-- The LSP client will keep this information up to date.
6369setFilesOfInterest :: IdeState -> HashMap NormalizedFilePath FileOfInterestStatus -> IO ()
@@ -107,4 +113,4 @@ kick = do
107113
108114 -- if idle, perform garbage collection
109115 liftIO $ sleep 5
110- garbageCollectDirtyKeys
116+ -- garbageCollectDirtyKeys
Original file line number Diff line number Diff line change @@ -26,6 +26,7 @@ import qualified Data.HashSet as S
2626import qualified Data.Text as Text
2727
2828import Control.Monad.IO.Class
29+ import qualified Data.HashMap.Strict as HM
2930import Development.IDE.Core.FileExists (modifyFileExists ,
3031 watchedGlobs )
3132import Development.IDE.Core.FileStore (registerFileWatches ,
@@ -84,8 +85,15 @@ descriptor plId = (defaultPluginDescriptor plId) { pluginNotificationHandlers =
8485 -- what we do with them
8586 let msg = show fileEvents
8687 logDebug (ideLogger ide) $ " Watched file events: " <> Text. pack msg
87- modifyFileExists ide fileEvents
88- resetFileStore ide fileEvents
88+ -- filter out files of interest, since we already know all about those
89+ filesOfInterest <- getFilesOfInterest ide
90+ let fileEvents' =
91+ [ f | f@ (FileEvent uri _) <- fileEvents
92+ , Just fp <- [uriToFilePath uri]
93+ , not $ HM. member (toNormalizedFilePath fp) filesOfInterest
94+ ]
95+ modifyFileExists ide fileEvents'
96+ resetFileStore ide fileEvents'
8997 setSomethingModified ide [] msg
9098
9199 , mkPluginNotificationHandler LSP. SWorkspaceDidChangeWorkspaceFolders $
You can’t perform that action at this time.
0 commit comments