Author: mkrueger
Date: 2008-02-19 09:23:41 -0500 (Tue, 19 Feb 2008)
New Revision: 96148
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/ChangeLog
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs
Log:
* MonoDevelop.SourceEditor/SourceEditorView.cs: Fixed comment/uncomment
code.
Modified: trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/ChangeLog
===================================================================
--- trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/ChangeLog
2008-02-19 14:11:54 UTC (rev 96147)
+++ trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/ChangeLog
2008-02-19 14:23:41 UTC (rev 96148)
@@ -1,5 +1,10 @@
2008-02-19 Mike Krüger <[EMAIL PROTECTED]>
+ * MonoDevelop.SourceEditor/SourceEditorView.cs: Fixed comment/uncomment
+ code.
+
+2008-02-19 Mike Krüger <[EMAIL PROTECTED]>
+
* MonoDevelop.SourceEditor/SourceEditorWidget.cs,
MonoDevelop.SourceEditor/SourceEditorView.cs: Fixed Bug 362889 - Error
underlining not properly redrawn.
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs
2008-02-19 14:11:54 UTC (rev 96147)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs
2008-02-19 14:23:41 UTC (rev 96148)
@@ -760,23 +760,30 @@
if (endLineNr < 0)
endLineNr = Document.LineCount;
+ LineSegment anchorLine =
TextEditor.IsSomethingSelected ? TextEditor.Document.GetLineByOffset
(TextEditor.SelectionAnchor) : null;
+ int anchorColumn =
TextEditor.IsSomethingSelected ? TextEditor.SelectionAnchor - anchorLine.Offset
: -1;
+
StringBuilder commentTag = new
StringBuilder(Services.Languages.GetBindingPerFileName
(this.ContentName).CommentTag ?? "//");
Document.BeginAtomicUndo ();
foreach (LineSegment line in TextEditor.SelectedLines) {
Document.Insert (line.Offset, commentTag);
}
if (TextEditor.IsSomethingSelected) {
- TextEditor.SelectionAnchor += commentTag.Length;
+ if (TextEditor.SelectionAnchor <
TextEditor.Caret.Offset) {
+ TextEditor.SelectionAnchor =
System.Math.Min (anchorLine.Offset + anchorLine.EditableLength, System.Math.Max
(anchorLine.Offset, TextEditor.SelectionAnchor + commentTag.Length));
+ } else {
+ TextEditor.SelectionAnchor =
System.Math.Min (anchorLine.Offset + anchorLine.EditableLength, System.Math.Max
(anchorLine.Offset, anchorLine.Offset + anchorColumn + commentTag.Length));
+ }
}
- DocumentLocation selectionEnd =
TextEditor.IsSomethingSelected ? TextEditor.Document.OffsetToLocation
(TextEditor.SelectionRange.EndOffset) : DocumentLocation.Empty;
- if (selectionEnd.Column != 0) {
+ if (TextEditor.Caret.Column != 0) {
TextEditor.Caret.PreserveSelection = true;
TextEditor.Caret.Column += commentTag.Length;
- if (TextEditor.IsSomethingSelected)
- TextEditor.ExtendSelectionTo
(TextEditor.Caret.Offset);
TextEditor.Caret.PreserveSelection = false;
}
+
+ if (TextEditor.IsSomethingSelected)
+ TextEditor.ExtendSelectionTo
(TextEditor.Caret.Offset);
Document.EndAtomicUndo ();
Document.CommitMultipleLineUpdate (startLineNr,
endLineNr);
}
@@ -787,6 +794,9 @@
int endLineNr = TextEditor.IsSomethingSelected ?
Document.OffsetToLineNumber (TextEditor.SelectionRange.EndOffset) :
TextEditor.Caret.Line;
if (endLineNr < 0)
endLineNr = Document.LineCount;
+ LineSegment anchorLine =
TextEditor.IsSomethingSelected ? TextEditor.Document.GetLineByOffset
(TextEditor.SelectionAnchor) : null;
+ int anchorColumn =
TextEditor.IsSomethingSelected ? TextEditor.SelectionAnchor - anchorLine.Offset
: -1;
+
string commentTag =
Services.Languages.GetBindingPerFileName (this.ContentName).CommentTag ?? "//";
Document.BeginAtomicUndo ();
int first = -1;
@@ -803,17 +813,24 @@
if (first < 0)
first = last;
}
-// if (TextEditor.IsSomethingSelected)
-// TextEditor.GetTextEditorData
().SelectionStart.Column = System.Math.Max (0, TextEditor.GetTextEditorData
().SelectionStart.Column - first);
- DocumentLocation selectionEnd =
TextEditor.IsSomethingSelected ? TextEditor.Document.OffsetToLocation
(TextEditor.SelectionRange.EndOffset) : DocumentLocation.Empty;
- if (selectionEnd.Column != 0) {
+ if (TextEditor.IsSomethingSelected) {
+ if (TextEditor.SelectionAnchor <
TextEditor.Caret.Offset) {
+ TextEditor.SelectionAnchor =
System.Math.Min (anchorLine.Offset + anchorLine.EditableLength, System.Math.Max
(anchorLine.Offset, TextEditor.SelectionAnchor - first));
+ } else {
+ TextEditor.SelectionAnchor =
System.Math.Min (anchorLine.Offset + anchorLine.EditableLength, System.Math.Max
(anchorLine.Offset, anchorLine.Offset + anchorColumn - last));
+ }
+ }
+
+ if (TextEditor.Caret.Column != 0) {
TextEditor.Caret.PreserveSelection = true;
TextEditor.Caret.Column = System.Math.Max (0,
TextEditor.Caret.Column - last);
- if (TextEditor.IsSomethingSelected)
- TextEditor.ExtendSelectionTo
(TextEditor.Caret.Offset);
TextEditor.Caret.PreserveSelection = false;
}
+
+ if (TextEditor.IsSomethingSelected)
+ TextEditor.ExtendSelectionTo
(TextEditor.Caret.Offset);
+
Document.EndAtomicUndo ();
Document.CommitMultipleLineUpdate (startLineNr,
endLineNr);
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches