Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/addins/AspNet/Html/DocTypeCompletionData.cs')
-rw-r--r--main/src/addins/AspNet/Html/DocTypeCompletionData.cs28
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);
}
}
}