/// <returns>The tracking span of the inserted "/**/" if there is an $end$ location, null /// otherwise.</returns> protected override ITrackingSpan InsertEmptyCommentAndGetEndPositionTrackingSpan() { VsTextSpan[] endSpanInSurfaceBuffer = new VsTextSpan[1]; if (ExpansionSession.GetEndSpan(endSpanInSurfaceBuffer) != VSConstants.S_OK) { return(null); } SnapshotSpan subjectBufferEndSpan; if (!TryGetSubjectBufferSpan(endSpanInSurfaceBuffer[0], out subjectBufferEndSpan)) { return(null); } var endPosition = subjectBufferEndSpan.Start.Position; string commentString = "/**/"; SubjectBuffer.Insert(endPosition, commentString); var commentSpan = new Span(endPosition, commentString.Length); return(SubjectBuffer.CurrentSnapshot.CreateTrackingSpan(commentSpan, SpanTrackingMode.EdgeExclusive)); }
protected override ITrackingSpan InsertEmptyCommentAndGetEndPositionTrackingSpan() { var endSpanInSurfaceBuffer = ExpansionSession.EndSpan; if (!TryGetSubjectBufferSpan(endSpanInSurfaceBuffer, out var subjectBufferEndSpan)) { return(null); } var endPosition = subjectBufferEndSpan.End.Position; var commentString = "/**/"; SubjectBuffer.Insert(endPosition, commentString); var commentSpan = new Span(endPosition, commentString.Length); return(SubjectBuffer.CurrentSnapshot.CreateTrackingSpan(commentSpan, SpanTrackingMode.EdgeExclusive)); }