Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Development.IDE.Core.ProgressReporting
Synopsis
- data ProgressEvent
- data PerFileProgressReporting = PerFileProgressReporting {
- inProgress :: forall a. NormalizedFilePath -> IO a -> IO a
- progressReportingInner :: ProgressReporting
- data ProgressReporting
- noPerFileProgressReporting :: IO PerFileProgressReporting
- progressReporting :: Maybe (LanguageContextEnv c) -> Text -> ProgressReportingStyle -> IO PerFileProgressReporting
- progressReportingNoTrace :: STM Int -> STM Int -> Maybe (LanguageContextEnv c) -> Text -> ProgressReportingStyle -> IO ProgressReporting
- mRunLspT :: Applicative m => Maybe (LanguageContextEnv c) -> LspT c m () -> m ()
- mRunLspTCallback :: Monad m => Maybe (LanguageContextEnv c) -> (LspT c m a -> LspT c m a) -> m a -> m a
- recordProgress :: InProgressState -> NormalizedFilePath -> (Int -> Int) -> IO ()
- data InProgressState = InProgressState {
- todoVar :: TVar Int
- doneVar :: TVar Int
- currentVar :: Map NormalizedFilePath Int
- progressStop :: ProgressReporter a => a -> IO ()
- progressUpdate :: ProgressReporter a => a -> ProgressEvent -> IO ()
Documentation
data ProgressEvent Source #
Constructors
ProgressNewStarted | |
ProgressCompleted | |
ProgressStarted |
data PerFileProgressReporting Source #
Constructors
PerFileProgressReporting | |
Fields
|
data ProgressReporting Source #
progressReporting :: Maybe (LanguageContextEnv c) -> Text -> ProgressReportingStyle -> IO PerFileProgressReporting Source #
progressReporting
initiates a new progress reporting session.
It necessitates the active tracking of progress using the inProgress
function.
Refer to Note [ProgressReporting API and InProgressState] for more details.
progressReportingNoTrace :: STM Int -> STM Int -> Maybe (LanguageContextEnv c) -> Text -> ProgressReportingStyle -> IO ProgressReporting Source #
progressReportingNoTrace
initiates a new progress reporting session.
It functions similarly to progressReporting
, but it utilizes an external state for progress tracking.
Refer to Note [ProgressReporting API and InProgressState] for more details.
mRunLspT :: Applicative m => Maybe (LanguageContextEnv c) -> LspT c m () -> m () Source #
mRunLspTCallback :: Monad m => Maybe (LanguageContextEnv c) -> (LspT c m a -> LspT c m a) -> m a -> m a Source #
recordProgress :: InProgressState -> NormalizedFilePath -> (Int -> Int) -> IO () Source #
data InProgressState Source #
Data structure to track progress across the project see Note [ProgressReporting API and InProgressState]
Constructors
InProgressState | |
Fields
|
progressStop :: ProgressReporter a => a -> IO () Source #
progressUpdate :: ProgressReporter a => a -> ProgressEvent -> IO () Source #