From be7ee132375ab2159b84a1575e6251de226715f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Kr=C3=BCger?= Date: Mon, 23 Jan 2017 14:26:15 -0800 Subject: [Ide] Unified code completion handle paths. We had 3 different cases of completion - the c# binding already contained a solution for that : completion trigger info. That struct contains all information the backend needs to take care of. --- .../Gui/T4EditorExtension.cs | 23 +++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'main/src/addins/TextTemplating') diff --git a/main/src/addins/TextTemplating/MonoDevelop.TextTemplating/Gui/T4EditorExtension.cs b/main/src/addins/TextTemplating/MonoDevelop.TextTemplating/Gui/T4EditorExtension.cs index dc4afb12c9..520954efab 100644 --- a/main/src/addins/TextTemplating/MonoDevelop.TextTemplating/Gui/T4EditorExtension.cs +++ b/main/src/addins/TextTemplating/MonoDevelop.TextTemplating/Gui/T4EditorExtension.cs @@ -99,19 +99,20 @@ namespace MonoDevelop.TextTemplating.Gui #region Code completion - public override Task CodeCompletionCommand (CodeCompletionContext completionContext) + public override Task HandleCodeCompletionAsync (CodeCompletionContext completionContext, CompletionTriggerInfo triggerInfo, CancellationToken token = default(CancellationToken)) { - int pos = completionContext.TriggerOffset; - if (pos <= 0) - return null; - return HandleCodeCompletion ((CodeCompletionContext) completionContext, true); - } + if (triggerInfo.CompletionTriggerReason == CompletionTriggerReason.CharTyped) { + char completionChar = triggerInfo.TriggerCharacter.Value; + int pos = completionContext.TriggerOffset; + if (pos > 0 && Editor.GetCharAt (pos - 1) == completionChar) { + return HandleCodeCompletion (completionContext, false); + } + } else if (triggerInfo.CompletionTriggerReason == CompletionTriggerReason.CompletionCommand) { + int pos = completionContext.TriggerOffset; + if (pos <= 0) + return null; + return HandleCodeCompletion ((CodeCompletionContext)completionContext, true); - public override Task HandleCodeCompletionAsync (CodeCompletionContext completionContext, char completionChar, CancellationToken token = default(CancellationToken)) - { - int pos = completionContext.TriggerOffset; - if (pos > 0 && Editor.GetCharAt (pos - 1) == completionChar) { - return HandleCodeCompletion (completionContext, false); } return null; } -- cgit v1.2.3