protected virtual bool TryUncommentBlock(SnapshotSpan span, ITextEdit edit, BlockCommentFormat format, out SnapshotSpan result) { Contract.Requires <ArgumentNullException>(edit != null, "edit"); Contract.Requires <ArgumentNullException>(format != null, "format"); string blockStart = format.StartText; string blockEnd = format.EndText; int startLen = span.Start.GetContainingLine().Length; int endLen = span.End.GetContainingLine().Length; TrimSpan(ref span); //sp. case no selection, try and uncomment the current line. if (span.IsEmpty) { span = new SnapshotSpan(span.Start.GetContainingLine().Start + ScanToNonWhitespaceChar(span.Start.GetContainingLine()), span.End.GetContainingLine().End); } // Check that comment start and end blocks are possible. if ((span.Start - span.Start.GetContainingLine().Start) + blockStart.Length <= startLen && (span.End - span.End.GetContainingLine().Start) - blockStart.Length >= 0) { string startText = span.Snapshot.GetText(span.Start.Position, blockStart.Length); if (startText == blockStart) { SnapshotSpan linespan = span; linespan = new SnapshotSpan(span.End - blockEnd.Length, span.End); string endText = linespan.GetText(); if (endText == blockEnd) { //yes, block comment selected; remove it edit.Delete(linespan); edit.Delete(span.Start.Position, blockStart.Length); result = span; return(true); } } } result = default(SnapshotSpan); return(false); }
protected virtual bool TryUncommentBlock(SnapshotSpan span, ITextEdit edit, BlockCommentFormat format, out SnapshotSpan result) { Contract.Requires<ArgumentNullException>(edit != null, "edit"); Contract.Requires<ArgumentNullException>(format != null, "format"); string blockStart = format.StartText; string blockEnd = format.EndText; int startLen = span.Start.GetContainingLine().Length; int endLen = span.End.GetContainingLine().Length; TrimSpan(ref span); //sp. case no selection, try and uncomment the current line. if (span.IsEmpty) { span = new SnapshotSpan(span.Start.GetContainingLine().Start + ScanToNonWhitespaceChar(span.Start.GetContainingLine()), span.End.GetContainingLine().End); } // Check that comment start and end blocks are possible. if ((span.Start - span.Start.GetContainingLine().Start) + blockStart.Length <= startLen && (span.End - span.End.GetContainingLine().Start) - blockStart.Length >= 0) { string startText = span.Snapshot.GetText(span.Start.Position, blockStart.Length); if (startText == blockStart) { SnapshotSpan linespan = span; linespan = new SnapshotSpan(span.End - blockEnd.Length, span.End); string endText = linespan.GetText(); if (endText == blockEnd) { //yes, block comment selected; remove it edit.Delete(linespan); edit.Delete(span.Start.Position, blockStart.Length); result = span; return true; } } } result = default(SnapshotSpan); return false; }
protected virtual SnapshotSpan CommentBlock(SnapshotSpan span, ITextEdit edit, BlockCommentFormat format) { Contract.Requires<ArgumentNullException>(edit != null, "edit"); Contract.Requires<ArgumentNullException>(format != null, "format"); //sp. case no selection if (span.IsEmpty) { span = new SnapshotSpan(span.Start.GetContainingLine().Start + ScanToNonWhitespaceChar(span.Start.GetContainingLine()), span.End.GetContainingLine().End); } // add start comment edit.Insert(span.Start, format.StartText); // add end comment edit.Insert(span.End, format.EndText); return span; }
protected virtual SnapshotSpan CommentBlock(SnapshotSpan span, ITextEdit edit, BlockCommentFormat format) { Contract.Requires <ArgumentNullException>(edit != null, "edit"); Contract.Requires <ArgumentNullException>(format != null, "format"); //sp. case no selection if (span.IsEmpty) { span = new SnapshotSpan(span.Start.GetContainingLine().Start + ScanToNonWhitespaceChar(span.Start.GetContainingLine()), span.End.GetContainingLine().End); } // add start comment edit.Insert(span.Start, format.StartText); // add end comment edit.Insert(span.End, format.EndText); return(span); }
protected virtual SnapshotSpan CommentBlock(SnapshotSpan span, [NotNull] ITextEdit edit, [NotNull] BlockCommentFormat format) { Requires.NotNull(edit, nameof(edit)); Requires.NotNull(format, nameof(format)); //sp. case no selection if (span.IsEmpty) { span = new SnapshotSpan(span.Start.GetContainingLine().Start + ScanToNonWhitespaceChar(span.Start.GetContainingLine()), span.End.GetContainingLine().End); } // add start comment edit.Insert(span.Start, format.StartText); // add end comment edit.Insert(span.End, format.EndText); return(span); }