Pipeline
- class Pipeline
-
Members defined in
Pipeline(1 member)
Schedule
documentsfor building with thisPipeline.documentswithbuild_stateequal or greater to the state at the end of particular pipeline stage will not be scheduled for that stage. For example, a document withbuild_state >= BuildState.Parsedwill not be scheduled for parsing. Methods
- schedule(documents: Sequence[syside.SharedMutex[syside.BasicDocument]], options: syside.ScheduleOptions = ..., invalidated: Sequence[syside.SharedMutex[syside.BasicDocument]] = []) syside.Schedule
Schedule
documentsfor building with thisPipeline.documentswithbuild_stateequal or greater to the state at the end of particular pipeline stage will not be scheduled for that stage. For example, a document withbuild_state >= BuildState.Parsedwill not be scheduled for parsing.Pipeline also accepts additional
invalidateddocuments that will have their semantic states reset. These documents will then pass through sema and validation stages as normal. This should typically be used for documents that have had their dependencies modified. Any documents for whichbuild_state < BuildState.Builtwill not be invalidated as there should be nothing to invalidate.The returned schedule should be executed on an
Executor:executor = syside.Executor(...) schedule = pipeline.schedule(...) ... result = executor.run(schedule)
Note that pipeline will skip indexing certain URLs that are used by IDEs to display virtual documents:
git*://*, e.g. used by VS Code to displaygitdiffsvscode*://*, e.g. used by VS Code to display editor previews<scheme>[:|://](URL with scheme only), e.g. used by Neovim for new unnamed buffers
The first two patterns additionally skip validation since those virtual documents are never a part of the workspace. Indexing is skipped only for known URL patterns to avoid unexpected behaviour. However, prefer using common schemes such as
fileorhttp[s]to ensure that the documents are handled correctly as more URL patterns may be added as more IDEs are tested.