Browse Source

Fix #105: Toggling multiple block comments

pull/508/head
Andreas Weizel 11 years ago
parent
commit
8fdacbc4c0
  1. 18
      src/Main/Base/Project/Src/Editor/IFormattingStrategy.cs

18
src/Main/Base/Project/Src/Editor/IFormattingStrategy.cs

@ -187,8 +187,16 @@ namespace ICSharpCode.SharpDevelop.Editor @@ -187,8 +187,16 @@ namespace ICSharpCode.SharpDevelop.Editor
if (commentStartOffset >= 0) {
commentEndOffset = selectedText.IndexOf(commentEnd, commentStartOffset + commentStart.Length - editor.SelectionStart);
} else {
commentEndOffset = selectedText.IndexOf(commentEnd);
}
// Try to search end of comment in whole selection
bool startAfterEnd = false;
int commentEndOffsetWholeText = selectedText.IndexOf(commentEnd);
if ((commentEndOffsetWholeText >= 0) && (commentEndOffsetWholeText < (commentStartOffset - editor.SelectionStart))) {
// There seems to be an end offset before the start offset in selection
commentStartOffset = -1;
startAfterEnd = true;
commentEndOffset = commentEndOffsetWholeText;
}
if (commentEndOffset >= 0) {
@ -205,7 +213,11 @@ namespace ICSharpCode.SharpDevelop.Editor @@ -205,7 +213,11 @@ namespace ICSharpCode.SharpDevelop.Editor
offset = document.TextLength;
}
string text = document.GetText(0, offset);
commentStartOffset = text.LastIndexOf(commentStart);
if (startAfterEnd) {
commentStartOffset = text.LastIndexOf(commentStart, editor.SelectionStart);
} else {
commentStartOffset = text.LastIndexOf(commentStart);
}
if (commentStartOffset >= 0) {
// Find end of comment before comment start.
commentEndBeforeStartOffset = text.IndexOf(commentEnd, commentStartOffset, editor.SelectionStart - commentStartOffset);

Loading…
Cancel
Save