diff options
author | Mike Krüger <mikkrg@microsoft.com> | 2018-03-29 09:17:39 +0300 |
---|---|---|
committer | Mike Krüger <mikkrg@microsoft.com> | 2018-03-29 09:17:39 +0300 |
commit | 348f37b32e2a60270f7c50b24329cb0e9c2f165f (patch) | |
tree | 85dc58585775617fd6426af4d6e48aabdc0727a0 | |
parent | 95f4f2a47421169238d13fe32c624a85240d3351 (diff) |
Fixes issue #4356 Error in C# options when opening projectmaster-fix591635
-rw-r--r-- | main/src/addins/CSharpBinding/MonoDevelop.CSharp/DocumentContextExtension.cs | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp/DocumentContextExtension.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp/DocumentContextExtension.cs index 1735933265..58b70cc0c0 100644 --- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp/DocumentContextExtension.cs +++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp/DocumentContextExtension.cs @@ -30,6 +30,8 @@ using System.Threading; using System.Threading.Tasks; using MonoDevelop.CSharp.Formatting; using MonoDevelop.Ide.Gui.Content; +using MonoDevelop.Projects.Policies; +using MonoDevelop.Core; namespace MonoDevelop.CSharp { @@ -39,14 +41,25 @@ namespace MonoDevelop.CSharp { if (ctx == null) throw new ArgumentNullException (nameof (ctx)); - if (ctx.AnalysisDocument != null) { - var result = await ctx.AnalysisDocument.GetOptionsAsync ().ConfigureAwait (false); - if (result != null) - return result; + try { + if (ctx.AnalysisDocument != null) { + var result = await ctx.AnalysisDocument.GetOptionsAsync ().ConfigureAwait (false); + if (result != null) + return result; + } + var policies = ctx.Project?.Policies; + if (policies == null) { + var defaultPolicy = PolicyService.GetDefaultPolicy<CSharpFormattingPolicy> (CSharpFormatter.MimeType); + var defaultTextPolicy = PolicyService.GetDefaultPolicy<TextStylePolicy> (CSharpFormatter.MimeType); + return defaultPolicy.CreateOptions (defaultTextPolicy); + } + var policy = policies.Get<CSharpFormattingPolicy> (CSharpFormatter.MimeType); + var textpolicy = policies.Get<TextStylePolicy> (CSharpFormatter.MimeType); + return policy.CreateOptions (textpolicy); + } catch (Exception e) { + LoggingService.LogError ("Error while getting document options", e); + return ctx.GetOptionSet (); } - var policy = ctx.Project.Policies.Get<CSharpFormattingPolicy> (CSharpFormatter.MimeType); - var textpolicy = ctx.Project.Policies.Get<TextStylePolicy> (CSharpFormatter.MimeType); - return policy.CreateOptions (textpolicy); } } } |