diff options
Diffstat (limited to 'main/src/addins/AspNet/Html/DocTypeCompletionData.cs')
-rw-r--r-- | main/src/addins/AspNet/Html/DocTypeCompletionData.cs | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/main/src/addins/AspNet/Html/DocTypeCompletionData.cs b/main/src/addins/AspNet/Html/DocTypeCompletionData.cs index 583293ab43..571f8e0125 100644 --- a/main/src/addins/AspNet/Html/DocTypeCompletionData.cs +++ b/main/src/addins/AspNet/Html/DocTypeCompletionData.cs @@ -29,6 +29,7 @@ using System; using MonoDevelop.Core; using MonoDevelop.Ide.CodeCompletion; +using MonoDevelop.Ide.Editor.Extension; namespace MonoDevelop.AspNet.Html { @@ -61,24 +62,21 @@ namespace MonoDevelop.AspNet.Html get { return name; } } - public override void InsertCompletionText (CompletionListWindow window, ref KeyActions ka, Gdk.Key closeChar, char keyChar, Gdk.ModifierType modifier) + public override void InsertCompletionText (CompletionListWindow window, ref KeyActions ka, KeyDescriptor descriptor) { - MonoDevelop.Ide.Gui.Content.IEditableTextBuffer buf = window.CompletionWidget as MonoDevelop.Ide.Gui.Content.IEditableTextBuffer; + var buf = window.CompletionWidget; if (buf != null) {
- using (var undo = buf.OpenUndoGroup ()) { - int deleteStartOffset = window.CodeCompletionContext.TriggerOffset; - if (text.StartsWith (docTypeStart)) { - int start = window.CodeCompletionContext.TriggerOffset - docTypeStart.Length; - if (start >= 0) { - string readback = buf.GetText (start, window.CodeCompletionContext.TriggerOffset); - if (string.Compare (readback, docTypeStart, StringComparison.OrdinalIgnoreCase) == 0) - deleteStartOffset -= docTypeStart.Length; - } + int deleteStartOffset = window.CodeCompletionContext.TriggerOffset; + if (text.StartsWith (docTypeStart)) { + int start = window.CodeCompletionContext.TriggerOffset - docTypeStart.Length; + if (start >= 0) { + string readback = buf.GetText (start, window.CodeCompletionContext.TriggerOffset); + if (string.Compare (readback, docTypeStart, StringComparison.OrdinalIgnoreCase) == 0) + deleteStartOffset -= docTypeStart.Length; } -
- buf.DeleteText (deleteStartOffset, buf.CursorPosition - deleteStartOffset); - buf.InsertText (buf.CursorPosition, text); - }
+ } +
+ buf.Replace (deleteStartOffset, buf.CaretOffset - deleteStartOffset, text); } } } |