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

Reply via email to