Author: lluis
Date: 2008-02-14 18:46:33 -0500 (Thu, 14 Feb 2008)
New Revision: 95711
Modified:
trunk/monodevelop/main/src/addins/Mono.Texteditor/ChangeLog
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/DefaultEditActions.cs
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/TextEditor.cs
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/TextUtil.cs
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/TextViewMargin.cs
Log:
* Mono.TextEditor/DefaultEditActions.cs,
Mono.TextEditor/TextViewMargin.cs, Mono.TextEditor/TextUtil.cs,
Mono.TextEditor/TextEditor.cs: Implemented 'go to matching bracket'
action.
Modified: trunk/monodevelop/main/src/addins/Mono.Texteditor/ChangeLog
===================================================================
--- trunk/monodevelop/main/src/addins/Mono.Texteditor/ChangeLog 2008-02-14
23:31:16 UTC (rev 95710)
+++ trunk/monodevelop/main/src/addins/Mono.Texteditor/ChangeLog 2008-02-14
23:46:33 UTC (rev 95711)
@@ -1,3 +1,9 @@
+2008-02-15 Lluis Sanchez Gual <[EMAIL PROTECTED]>
+
+ * Mono.TextEditor/DefaultEditActions.cs,
Mono.TextEditor/TextViewMargin.cs,
+ Mono.TextEditor/TextUtil.cs, Mono.TextEditor/TextEditor.cs:
Implemented
+ 'go to matching bracket' action.
+
2008-02-14 Mike Krüger <[EMAIL PROTECTED]>
* Mono.TextEditor/TextViewMargin.cs, Mono.TextEditor/TextMarker.cs,
Modified:
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/DefaultEditActions.cs
===================================================================
---
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/DefaultEditActions.cs
2008-02-14 23:31:16 UTC (rev 95710)
+++
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/DefaultEditActions.cs
2008-02-14 23:46:33 UTC (rev 95711)
@@ -466,6 +466,20 @@
data.Caret.Line =
data.Document.Splitter.LineCount - 1;
}
}
+
+ public class GotoMatchingBracket : EditAction
+ {
+ public override void Run (TextEditorData data)
+ {
+ int matchingBracketOffset =
TextUtil.GetMatchingBracketOffset (data.Document, data.Caret.Offset);
+ if (matchingBracketOffset == -1 && data.Caret.Offset >
0)
+ matchingBracketOffset =
TextUtil.GetMatchingBracketOffset (data.Document, data.Caret.Offset - 1);
+
+ if (matchingBracketOffset != -1)
+ data.Caret.Offset = matchingBracketOffset;
+ }
+ }
+
#endregion
public class RemoveTab : EditAction
Modified:
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/TextEditor.cs
===================================================================
---
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/TextEditor.cs
2008-02-14 23:31:16 UTC (rev 95710)
+++
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/TextEditor.cs
2008-02-14 23:46:33 UTC (rev 95711)
@@ -231,6 +231,9 @@
keyBindings.Add (GetKeyCode (Gdk.Key.F2), new
GotoNextBookmark ());
keyBindings.Add (GetKeyCode (Gdk.Key.F2,
Gdk.ModifierType.ShiftMask), new GotoPrevBookmark ());
+
+ keyBindings.Add (GetKeyCode (Gdk.Key.b,
Gdk.ModifierType.ControlMask), new GotoMatchingBracket ());
+
bookmarkMargin = new BookmarkMargin (this);
gutterMargin = new GutterMargin (this);
foldMarkerMargin = new FoldMarkerMargin (this);
Modified:
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/TextUtil.cs
===================================================================
---
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/TextUtil.cs
2008-02-14 23:31:16 UTC (rev 95710)
+++
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/TextUtil.cs
2008-02-14 23:46:33 UTC (rev 95711)
@@ -40,6 +40,24 @@
return (openBrackets + closingBrackets).IndexOf (ch) >=
0;
}
+ public static int GetMatchingBracketOffset (Document document,
int offset)
+ {
+ char ch = document.Buffer.GetCharAt (offset);
+ int bracket = TextUtil.openBrackets.IndexOf (ch);
+ int result;
+ if (bracket >= 0) {
+ result = TextUtil.SearchMatchingBracketForward
(document, offset + 1, bracket);
+ } else {
+ bracket = TextUtil.closingBrackets.IndexOf (ch);
+ if (bracket >= 0) {
+ result =
TextUtil.SearchMatchingBracketBackward (document, offset - 1, bracket);
+ } else {
+ result = -1;
+ }
+ }
+ return result;
+ }
+
public static int SearchMatchingBracketForward (Document
document, int offset, int bracket)
{
return SearchMatchingBracket (document, offset,
closingBrackets[bracket], openBrackets[bracket], 1);
Modified:
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/TextViewMargin.cs
===================================================================
---
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/TextViewMargin.cs
2008-02-14 23:31:16 UTC (rev 95710)
+++
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/TextViewMargin.cs
2008-02-14 23:46:33 UTC (rev 95711)
@@ -136,9 +136,9 @@
if (offset < 0)
offset = 0;
int oldIndex = highlightBracketOffset;
- highlightBracketOffset =
GetMatchingBracketOffset (offset);
+ highlightBracketOffset =
TextUtil.GetMatchingBracketOffset (Document, offset);
if (highlightBracketOffset == Caret.Offset &&
offset + 1 < Document.Buffer.Length)
- highlightBracketOffset =
GetMatchingBracketOffset (offset + 1);
+ highlightBracketOffset =
TextUtil.GetMatchingBracketOffset (Document, offset + 1);
if (highlightBracketOffset == Caret.Offset)
highlightBracketOffset = -1;
@@ -156,24 +156,6 @@
textCursor = new Gdk.Cursor (Gdk.CursorType.Xterm);
}
- int GetMatchingBracketOffset (int offset)
- {
- char ch = Document.Buffer.GetCharAt (offset);
- int bracket = TextUtil.openBrackets.IndexOf (ch);
- int result;
- if (bracket >= 0) {
- result = TextUtil.SearchMatchingBracketForward
(Document, offset + 1, bracket);
- } else {
- bracket = TextUtil.closingBrackets.IndexOf (ch);
- if (bracket >= 0) {
- result =
TextUtil.SearchMatchingBracketBackward (Document, offset - 1, bracket);
- } else {
- result = -1;
- }
- }
- return result;
- }
-
public override void OptionsChanged ()
{
DisposeGCs ();
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches