diff options
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates')
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs | 17 | ||||
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateCompletionData.cs | 9 |
2 files changed, 17 insertions, 9 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs index d2ec677110..306472251a 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs @@ -52,7 +52,7 @@ namespace MonoDevelop.Ide.CodeTemplates InExpression } - public interface ITemplateWidget + public interface ICodeTemplateContextProvider { CodeTemplateContext GetCodeTemplateContext (); } @@ -354,7 +354,20 @@ namespace MonoDevelop.Ide.CodeTemplates return result.ToString (); } - public TemplateResult InsertTemplate (MonoDevelop.Ide.Gui.Document document) + public void Insert (MonoDevelop.Ide.Gui.Document document) + { + var handler = document.GetContent<ICodeTemplateHandler> (); + if (handler != null) { + handler.InsertTemplate (this, document); + } else { + InsertTemplateContents (document); + } + } + + /// <summary> + /// Don't use this unless you're implementing ICodeTemplateWidget. Use Insert instead. + /// </summary> + public TemplateResult InsertTemplateContents (MonoDevelop.Ide.Gui.Document document) { ProjectDom dom = document.Dom; ParsedDocument doc = document.ParsedDocument ?? MonoDevelop.Projects.Dom.Parser.ProjectDomService.GetParsedDocument (dom, document.FileName); diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateCompletionData.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateCompletionData.cs index 315057bc64..bb6721d0c1 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateCompletionData.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateCompletionData.cs @@ -32,7 +32,7 @@ using MonoDevelop.Core; namespace MonoDevelop.Ide.CodeTemplates { - public interface ICodeTemplateWidget + public interface ICodeTemplateHandler { void InsertTemplate (CodeTemplate template, Document document); } @@ -54,12 +54,7 @@ namespace MonoDevelop.Ide.CodeTemplates public override void InsertCompletionText (CompletionListWindow window) { - if (window.CompletionWidget is ICodeTemplateWidget) { - ((ICodeTemplateWidget)window.CompletionWidget).InsertTemplate (template, doc); - } else { - template.InsertTemplate (doc); - } + template.Insert (doc); } - } } |