IProjectionBufferFactoryService.CreateProjectionBuffer Method (IProjectionEditResolver, IList<Object>, ProjectionBufferOptions, IContentType)


Creates an IProjectionBuffer object with a specified IContentType and the specified list of ITrackingSpan objects and/or literal strings.

Namespace:   Microsoft.VisualStudio.Text.Projection
Assembly:  Microsoft.VisualStudio.Text.Data (in Microsoft.VisualStudio.Text.Data.dll)

IProjectionBuffer CreateProjectionBuffer(
	IProjectionEditResolver projectionEditResolver,
	IList<object> sourceSpans,
	ProjectionBufferOptions options,
	IContentType contentType


Type: Microsoft.VisualStudio.Text.Projection.IProjectionEditResolver

The conflict resolver for this IProjectionBuffer. May be null.

Type: System.Collections.Generic.IList<Object>

The initial set of source spans for the IProjectionBuffer.

Type: Microsoft.VisualStudio.Text.Projection.ProjectionBufferOptions

Options for this buffer.

Type: Microsoft.VisualStudio.Utilities.IContentType

The IContentType for the new IProjectionBuffer.

Return Value

Type: Microsoft.VisualStudio.Text.Projection.IProjectionBuffer

A non-null projection buffer.

Exception Condition

sourceSpans or any of its elements is null.


An element of sourceSpans is neither a string nor an ITrackingSpan.


A tracking span in sourceSpans is EdgeInclusive and does not cover its entire buffer, or is EdgePositive and does not abut the end of its buffer, or is EdgeNegative and does not abut the beginning of its buffer.

These checks are not performed if the projection buffer was created with the PermissiveEdgeInclusiveSourceSpans option.)


Some of the tracking spans in sourceSpans overlap.

Return to top