Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Krüger <mikkrg@microsoft.com>2018-03-29 09:17:39 +0300
committerMike Krüger <mikkrg@microsoft.com>2018-03-29 09:17:39 +0300
commit348f37b32e2a60270f7c50b24329cb0e9c2f165f (patch)
tree85dc58585775617fd6426af4d6e48aabdc0727a0
parent95f4f2a47421169238d13fe32c624a85240d3351 (diff)
Fixes issue #4356 Error in C# options when opening projectmaster-fix591635
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp/DocumentContextExtension.cs27
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);
}
}
}