diff options
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs | 14 |
1 files changed, 13 insertions, 1 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 fbfc339ad0..08ac6894b7 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs @@ -391,13 +391,25 @@ namespace MonoDevelop.Ide.CodeTemplates TemplateResult template = FillVariables (context); template.InsertPosition = offset; - document.Editor.Insert (offset, template.Code); + int length = document.Editor.Insert (offset, template.Code); if (template.CaretEndOffset >= 0) { document.Editor.Caret.Offset = offset + template.CaretEndOffset; } else { document.Editor.Caret.Offset= offset + template.Code.Length; } + + string mt = DesktopService.GetMimeTypeForUri (document.FileName); + var formatter = MonoDevelop.Projects.Text.TextFileService.GetFormatter (mt); + if (formatter != null) { + document.Editor.Document.BeginAtomicUndo (); + formatter.OnTheFlyFormat (document.Project != null ? document.Project.Policies : null, + document.Editor, + offset, + offset + length); + document.Editor.Document.EndAtomicUndo (); + } + return template; } |