diff options
author | Mike Krüger <mkrueger@novell.com> | 2010-05-06 21:22:30 +0400 |
---|---|---|
committer | Mike Krüger <mkrueger@novell.com> | 2010-05-06 21:22:30 +0400 |
commit | 0cf7664bb2c0d8204e81efca186084a8e1a53aa3 (patch) | |
tree | 1d4b4cf8053eb814e0a1217c59db38765afb851c /main | |
parent | 8ce60d2bf933dac9e5fa911b4f94066ba50580b3 (diff) |
* MonoDevelop.Ide.Gui/Document.cs:
* MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs: Added Dom property to
document. This is the safest way to get the Dom assoziated with an
open document. It NEVER returns null. It creates a special file only
dom for files that are not bound to a project.
svn path=/trunk/monodevelop/; revision=156822
Diffstat (limited to 'main')
3 files changed, 28 insertions, 1 deletions
diff --git a/main/src/core/MonoDevelop.Ide/ChangeLog b/main/src/core/MonoDevelop.Ide/ChangeLog index 4c3612763f..71575fb4e4 100644 --- a/main/src/core/MonoDevelop.Ide/ChangeLog +++ b/main/src/core/MonoDevelop.Ide/ChangeLog @@ -1,5 +1,14 @@ 2010-05-06 Mike Krüger <mkrueger@novell.com> + * MonoDevelop.Ide.Gui/Document.cs: + * MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs: Added Dom + property to document. This is the safest way to get the Dom + assoziated with an open document. It NEVER returns null. It + creates a special file only dom for files that are not bound + to a project. + +2010-05-06 Mike Krüger <mkrueger@novell.com> + * MonoDevelop.Ide.CodeCompletion/ListWidget.cs: Fix 'Bug 603344 - Matching in completion list'. 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 8552d78465..d2ec677110 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs @@ -356,7 +356,7 @@ namespace MonoDevelop.Ide.CodeTemplates public TemplateResult InsertTemplate (MonoDevelop.Ide.Gui.Document document) { - ProjectDom dom = ProjectDomService.GetProjectDom (document.Project) ?? ProjectDomService.GetFileDom (document.FileName); + ProjectDom dom = document.Dom; ParsedDocument doc = document.ParsedDocument ?? MonoDevelop.Projects.Dom.Parser.ProjectDomService.GetParsedDocument (dom, document.FileName); MonoDevelop.Ide.Gui.TextEditor editor = document.TextEditor; diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs index 3057153c76..13f8f70772 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs @@ -141,6 +141,19 @@ namespace MonoDevelop.Ide.Gui get { return Window.ViewContent.Project; } } + ProjectDom fileDom; + public ProjectDom Dom { + get { + ProjectDom result = ProjectDomService.GetProjectDom (Project); + if (result != null) + return result; + + if (fileDom == null) + fileDom = ProjectDomService.GetFileDom (FileName); + return fileDom ?? ProjectDom.Empty; + } + } + public string PathRelativeToProject { get { return Window.ViewContent.PathRelativeToProject; } } @@ -409,6 +422,11 @@ namespace MonoDevelop.Ide.Gui ProjectDomService.Parse (curentParseProject, currentParseFile, DesktopService.GetMimeTypeForUri (currentParseFile)); }); } + if (fileDom != null) { + ProjectDomService.RemoveFileDom (FileName); + fileDom = null; + } + Counters.OpenDocuments--; } #region document tasks |