syside.Pipeline
- class Pipeline
- schedule(documents: Sequence[syside.SharedMutex[syside.BasicDocument]], options: syside.ScheduleOptions = ..., invalidated: Sequence[syside.SharedMutex[syside.BasicDocument]] = []) syside.Schedule
Schedule
documents
for building with thisPipeline
.documents
withbuild_state
equal 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.Parsed
will not be scheduled for parsing.Pipeline also accepts additional
invalidated
documents 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.Built
will 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 displaygit
diffsvscode*://*
, 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
file
orhttp[s]
to ensure that the documents are handled correctly as more URL patterns may be added as more IDEs are tested.