diff options
author | Mike Krüger <mkrueger@xamarin.com> | 2017-01-24 01:26:15 +0300 |
---|---|---|
committer | Mike Krüger <mkrueger@xamarin.com> | 2017-01-24 01:26:15 +0300 |
commit | be7ee132375ab2159b84a1575e6251de226715f7 (patch) | |
tree | 31d480db7d0956af5192d286b51470e19e87ef46 /main/src/addins/TextTemplating | |
parent | 4a28174af1188ff9ae59fdaa55cdb21787642dd5 (diff) |
[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.
Diffstat (limited to 'main/src/addins/TextTemplating')
-rw-r--r-- | main/src/addins/TextTemplating/MonoDevelop.TextTemplating/Gui/T4EditorExtension.cs | 23 |
1 files changed, 12 insertions, 11 deletions
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<ICompletionDataList> CodeCompletionCommand (CodeCompletionContext completionContext) + public override Task<ICompletionDataList> 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<ICompletionDataList> 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; } |