From 5b76ce55ed53d78b904d5c74cddf7bfeeab357a0 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Fri, 10 Jan 2014 23:07:40 +0100 Subject: [PATCH] replace | with caret in "literal" completion items (delegate templates, etc.) --- .../Completion/CSharpCompletionDataFactory.cs | 2 +- .../Src/Completion/XmlDocCompletionData.cs | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/CSharpCompletionDataFactory.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/CSharpCompletionDataFactory.cs index 25597a1cdd..cea7ef24b2 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/CSharpCompletionDataFactory.cs +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/CSharpCompletionDataFactory.cs @@ -77,7 +77,7 @@ namespace CSharpBinding.Completion ICompletionData ICompletionDataFactory.CreateLiteralCompletionData(string title, string description, string insertText) { - return new CompletionData(title) { + return new LiteralCompletionData(title) { Description = description, CompletionText = insertText ?? title, Image = ClassBrowserIconService.Keyword diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/XmlDocCompletionData.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/XmlDocCompletionData.cs index 764ef65d17..9f877b02c9 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/XmlDocCompletionData.cs +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/XmlDocCompletionData.cs @@ -31,6 +31,28 @@ namespace CSharpBinding.Completion } } } + + /// + /// Completion item for a literal. + /// + class LiteralCompletionData : CompletionData + { + public LiteralCompletionData(string title) + : base(title) + { + } + + public override void Complete(CompletionContext context) + { + int index = CompletionText.IndexOf('|'); + if (index > -1) { + context.Editor.Document.Replace(context.StartOffset, context.Length, CompletionText.Remove(index, 1)); + context.Editor.Caret.Offset = context.StartOffset + index; + } else { + base.Complete(context); + } + } + } }