Skip to content

Commit ab13cfe

Browse files
committed
fixups
1 parent 816043c commit ab13cfe

File tree

3 files changed

+15
-26
lines changed

3 files changed

+15
-26
lines changed

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ import Control.Monad
3838
import qualified Development.IDE.Core.FileExists as FileExists
3939
import qualified Development.IDE.Core.OfInterest as OfInterest
4040
import Development.IDE.Core.Shake hiding (Log)
41-
import Development.IDE.Core.Shake
4241
import qualified Development.IDE.Core.Shake as Shake
4342
import Development.IDE.Types.Shake (WithHieDb)
4443
import System.Environment (lookupEnv)

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

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -155,21 +155,6 @@ import qualified Focus
155155
import GHC.Fingerprint
156156
import Language.LSP.Types.Capabilities
157157
import OpenTelemetry.Eventlog
158-
159-
import Control.Exception.Extra hiding (bracket_)
160-
import Data.Aeson (toJSON)
161-
import qualified Data.ByteString.Char8 as BS8
162-
import Data.Coerce (coerce)
163-
import Data.Default
164-
import Data.Foldable (for_, toList)
165-
import Data.HashSet (HashSet)
166-
import qualified Data.HashSet as HSet
167-
import Data.IORef.Extra (atomicModifyIORef'_,
168-
atomicModifyIORef_)
169-
import Data.String (fromString)
170-
import Data.Text (pack)
171-
import Debug.Trace.Flags (userTracingEnabled)
172-
import qualified Development.IDE.Types.Exports as ExportsMap
173158
import HieDb.Types
174159
import Ide.Plugin.Config
175160
import qualified Ide.PluginUtils as HLS
@@ -178,10 +163,8 @@ import Language.LSP.Diagnostics
178163
import qualified Language.LSP.Server as LSP
179164
import Language.LSP.Types
180165
import qualified Language.LSP.Types as LSP
181-
import Language.LSP.Types.Capabilities
182166
import Language.LSP.VFS
183167
import qualified "list-t" ListT
184-
import OpenTelemetry.Eventlog
185168
import qualified StmContainers.Map as STM
186169
import System.FilePath hiding (makeRelative)
187170
import System.IO.Unsafe (unsafePerformIO)
@@ -641,10 +624,10 @@ shakeOpen recorder lspEnv defaultConfig logger debouncer
641624

642625
checkParents <- optCheckParents
643626
for_ metrics $ \store -> do
644-
let readValuesCounter = fromIntegral . countRelevantKeys checkParents . HMap.keys <$> readVar (state shakeExtras)
645-
readDirtyKeys = fromIntegral . countRelevantKeys checkParents . HSet.toList <$> readIORef (dirtyKeys shakeExtras)
627+
let readValuesCounter = fromIntegral . countRelevantKeys checkParents <$> getStateKeys shakeExtras
628+
readDirtyKeys = fromIntegral . countRelevantKeys checkParents . HSet.toList <$> readTVarIO(dirtyKeys shakeExtras)
646629
readIndexPending = fromIntegral . HMap.size <$> readTVarIO (indexPending $ hiedbWriter shakeExtras)
647-
readExportsMap = fromIntegral . HMap.size . getExportsMap <$> readVar (exportsMap shakeExtras)
630+
readExportsMap = fromIntegral . HMap.size . getExportsMap <$> readTVarIO (exportsMap shakeExtras)
648631
readDatabaseCount = fromIntegral . countRelevantKeys checkParents . map fst <$> shakeGetDatabaseKeys shakeDb
649632
readDatabaseStep = fromIntegral <$> shakeGetBuildStep shakeDb
650633

@@ -666,7 +649,7 @@ startTelemetry db extras@ShakeExtras{..}
666649
IdeOptions{optCheckParents} <- getIdeOptionsIO extras
667650
checkParents <- optCheckParents
668651
regularly 1 $ do
669-
observe countKeys . countRelevantKeys checkParents . map fst =<< (atomically . ListT.toList . STM.listT) state
652+
observe countKeys . countRelevantKeys checkParents =<< getStateKeys extras
670653
readTVarIO dirtyKeys >>= observe countDirty . countRelevantKeys checkParents . HSet.toList
671654
shakeGetBuildStep db >>= observe countBuilds
672655

@@ -675,6 +658,8 @@ startTelemetry db extras@ShakeExtras{..}
675658
regularly :: Seconds -> IO () -> IO (Async ())
676659
regularly delay act = async $ forever (act >> sleep delay)
677660

661+
getStateKeys :: ShakeExtras -> IO [Key]
662+
getStateKeys = (fmap.fmap) fst . atomically . ListT.toList . STM.listT . state
678663

679664
-- | Must be called in the 'Initialized' handler and only once
680665
shakeSessionInit :: Recorder (WithPriority Log) -> IdeState -> IO ()

ghcide/src/Development/IDE/Main.hs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,14 @@ module Development.IDE.Main
1111
,testing
1212
,Log(..)
1313
) where
14-
import Control.Concurrent.Extra (withNumCapabilities)
14+
import Control.Concurrent.Async (async, waitCatch)
15+
import Control.Concurrent.Extra (killThread, withNumCapabilities)
1516
import Control.Concurrent.STM.Stats (atomically,
1617
dumpSTMStats)
1718
import Control.Exception.Safe (SomeException, catchAny,
18-
displayException)
19-
import Control.Monad.Extra (concatMapM, unless,
19+
displayException,
20+
onException)
21+
import Control.Monad.Extra (concatMapM, join, unless,
2022
when)
2123
import qualified Data.Aeson.Encode.Pretty as A
2224
import Data.Default (Default (def))
@@ -34,7 +36,8 @@ import Data.Typeable (typeOf)
3436
import Development.IDE (Action, GhcVersion (..),
3537
Priority (Debug, Error), Rules,
3638
ghcVersion,
37-
hDuplicateTo')
39+
hDuplicateTo',
40+
logInfo)
3841
import Development.IDE.Core.Debouncer (Debouncer,
3942
newAsyncDebouncer)
4043
import Development.IDE.Core.FileStore (isWatchSupported)
@@ -479,6 +482,8 @@ defaultMain recorder Arguments{..} = withHeapStats (cmapWithPrio LogHeapStats re
479482
}
480483
ide <- initialise (cmapWithPrio LogService recorder) argsDefaultHlsConfig rules Nothing logger debouncer options hiedb hieChan Nothing
481484
shakeSessionInit (cmapWithPrio LogShake recorder) ide
485+
registerIdeConfiguration (shakeExtras ide) $ IdeConfiguration mempty (hashed Nothing)
486+
c ide
482487

483488
expandFiles :: [FilePath] -> IO [FilePath]
484489
expandFiles = concatMapM $ \x -> do

0 commit comments

Comments
 (0)