Author: mkrueger
Date: 2008-01-25 07:14:05 -0500 (Fri, 25 Jan 2008)
New Revision: 93892
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/ChangeLog
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtendibleTextEditor.cs
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorOptions.cs
Log:
* MonoDevelop.SourceEditor/ExtendibleTextEditor.cs,
MonoDevelop.SourceEditor/SourceEditorOptions.cs: AutoInsert
template option now works.
Modified: trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/ChangeLog
===================================================================
--- trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/ChangeLog
2008-01-25 12:14:03 UTC (rev 93891)
+++ trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/ChangeLog
2008-01-25 12:14:05 UTC (rev 93892)
@@ -1,3 +1,15 @@
+2008-01-25 Mike Krüger <[EMAIL PROTECTED]>
+
+ * MonoDevelop.SourceEditor/ExtendibleTextEditor.cs,
+ MonoDevelop.SourceEditor/SourceEditorOptions.cs: AutoInsert template
+ option now works.
+
+2008-01-25 Mike Krüger <[EMAIL PROTECTED]>
+
+ * MonoDevelop.SourceEditor/ExtendibleTextEditor.cs,
+ MonoDevelop.SourceEditor/SourceEditorOptions.cs: AutoInsert template
+ option now works.
+
2008-01-25 Lluis Sanchez Gual <[EMAIL PROTECTED]>
* MonoDevelop.SourceEditor.addin.xml: Update MD version.
@@ -5,6 +17,12 @@
2008-01-25 Mike Krüger <[EMAIL PROTECTED]>
* MonoDevelop.SourceEditor/ExtendibleTextEditor.cs,
+ MonoDevelop.SourceEditor/SourceEditorOptions.cs: AutoInsert template
+ option now works.
+
+2008-01-25 Mike Krüger <[EMAIL PROTECTED]>
+
+ * MonoDevelop.SourceEditor/ExtendibleTextEditor.cs,
MonoDevelop.SourceEditor/SourceEditorView.cs,
MonoDevelop.SourceEditor/SourceEditorOptions.cs: Added auto insert
bracket option.
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtendibleTextEditor.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtendibleTextEditor.cs
2008-01-25 12:14:03 UTC (rev 93891)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtendibleTextEditor.cs
2008-01-25 12:14:05 UTC (rev 93892)
@@ -99,6 +99,7 @@
protected override bool OnKeyPressEvent (Gdk.EventKey evnt)
{
bool result = true;
+ char ch = (char)evnt.Key;
if (extension != null) {
if (!extension.KeyPress (evnt.Key, evnt.State))
{
result = base.OnKeyPressEvent (evnt);
@@ -106,7 +107,8 @@
} else {
result = base.OnKeyPressEvent (evnt);
}
- char ch = (char)evnt.Key;
+ if (SourceEditorOptions.Options.AutoInsertTemplates &&
IsTemplateKnown ())
+ DoInsertTemplate ();
if
(SourceEditorOptions.Options.AutoInsertMatchingBracket) {
switch (ch) {
case '{':
@@ -323,15 +325,34 @@
return start;
}
- public string GetLeadingWhiteSpace (int line)
+ public string GetLeadingWhiteSpace (int lineNr)
{
- string lineText = Buffer.GetTextAt (Document.GetLine
(line));
+ LineSegment line = Document.GetLine (lineNr);
int index = 0;
- while (index < lineText.Length && Char.IsWhiteSpace
(lineText[index]))
+ while (index < line.EditableLength && Char.IsWhiteSpace
(Buffer.GetCharAt (line.Offset + index)))
index++;
- return index > 0 ? lineText.Substring (0, index) : "";
+ return index > 0 ? Buffer.GetTextAt (line.Offset,
index) : "";
}
+ public bool IsTemplateKnown ()
+ {
+ string word = GetWordBeforeCaret ();
+ CodeTemplateGroup templateGroup =
CodeTemplateService.GetTemplateGroupPerFilename (this.view.ContentName);
+ if (String.IsNullOrEmpty (word) || templateGroup ==
null)
+ return false;
+
+ bool result = false;
+ foreach (CodeTemplate template in
templateGroup.Templates) {
+ if (template.Shortcut == word) {
+ result = true;
+ } else if (template.Shortcut.StartsWith (word))
{
+ result = false;
+ break;
+ }
+ }
+ return result;
+ }
+
public bool DoInsertTemplate ()
{
string word = GetWordBeforeCaret ();
@@ -355,7 +376,7 @@
if (word.Length > 0)
offset = DeleteWordBeforeCaret ();
-// string leadingWhiteSpace = GetLeadingWhiteSpace
(Caret.Line);
+ string leadingWhiteSpace = GetLeadingWhiteSpace
(Caret.Line);
int finalCaretOffset = offset + template.Text.Length;
StringBuilder builder = new StringBuilder ();
@@ -364,6 +385,12 @@
case '|':
finalCaretOffset = i + offset;
break;
+ case '\r':
+ break;
+ case '\n':
+ builder.Append (Environment.NewLine);
+ builder.Append (leadingWhiteSpace);
+ break;
default:
builder.Append (template.Text[i]);
break;
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorOptions.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorOptions.cs
2008-01-25 12:14:03 UTC (rev 93891)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorOptions.cs
2008-01-25 12:14:05 UTC (rev 93892)
@@ -208,7 +208,7 @@
public bool AutoInsertTemplates {
get {
- return PropertyService.Get
("AutoInsertTemplates", true);
+ return PropertyService.Get
("AutoInsertTemplates", false);
}
set {
if (value != AutoInsertTemplates) {
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches