public CSharpFormattingPolicy GetProjectOptions(IProject project)
        {
            if (!initialized)
            {
                return(GlobalOptions);
            }

            var csproject = project as CSharpProject;

            if (csproject != null)
            {
                string key = project.FileName;
                if (!projectOptions.ContainsKey(key))
                {
                    // Lazily create options container for project
                    var projectFormattingPersistence = new CSharpFormattingPolicy(
                        csproject.GlobalPreferences,
                        new CSharpFormattingOptionsContainer((SolutionOptions ?? GlobalOptions).OptionsContainer)
                    {
                        DefaultText = StringParser.Parse("${res:CSharpBinding.Formatting.ProjectOptionReference}")
                    });
                    projectFormattingPersistence.FormattingPolicyUpdated += OnFormattingPolicyUpdated;
                    projectFormattingPersistence.Load();
                    projectOptions[key] = projectFormattingPersistence;
                }

                return(projectOptions[key]);
            }

            return(SolutionOptions ?? GlobalOptions);
        }
		public CSharpFormattingPolicies()
		{
			// Load global settings
			GlobalOptions = new CSharpFormattingPolicy(
				SD.PropertyService.MainPropertiesContainer, new CSharpFormattingOptionsContainer() {
					DefaultText = StringParser.Parse("${res:CSharpBinding.Formatting.GlobalOptionReference}")
				});
			GlobalOptions.FormattingPolicyUpdated += OnFormattingPolicyUpdated;
			GlobalOptions.Load();
		}
 public CSharpFormattingPolicies()
 {
     // Load global settings
     GlobalOptions = new CSharpFormattingPolicy(
         SD.PropertyService.MainPropertiesContainer, new CSharpFormattingOptionsContainer()
     {
         DefaultText = StringParser.Parse("${res:CSharpBinding.Formatting.GlobalOptionReference}")
     });
     GlobalOptions.FormattingPolicyUpdated += OnFormattingPolicyUpdated;
     GlobalOptions.Load();
 }
 void SolutionOpened(object sender, SolutionEventArgs e)
 {
     // Load solution settings
     SolutionOptions = new CSharpFormattingPolicy(
         e.Solution.SDSettings,
         new CSharpFormattingOptionsContainer(GlobalOptions.OptionsContainer)
     {
         DefaultText = StringParser.Parse("${res:CSharpBinding.Formatting.SolutionOptionReference}")
     });
     SolutionOptions.FormattingPolicyUpdated += OnFormattingPolicyUpdated;
     SolutionOptions.Load();
 }
		void SolutionOpened(object sender, SolutionEventArgs e)
		{
			// Load solution settings
			SolutionOptions = new CSharpFormattingPolicy(
				e.Solution.SDSettings,
				new CSharpFormattingOptionsContainer(GlobalOptions.OptionsContainer) {
					DefaultText = StringParser.Parse("${res:CSharpBinding.Formatting.SolutionOptionReference}")
				});
			SolutionOptions.FormattingPolicyUpdated += OnFormattingPolicyUpdated;
			SolutionOptions.Load();
		}
		public CSharpFormattingPolicy GetProjectOptions(IProject project)
		{
			if (!initialized)
				return GlobalOptions;
			
			var csproject = project as CSharpProject;
			if (csproject != null) {
				string key = project.FileName;
				if (!projectOptions.ContainsKey(key)) {
					// Lazily create options container for project
					var projectFormattingPersistence = new CSharpFormattingPolicy(
						csproject.GlobalPreferences,
						new CSharpFormattingOptionsContainer((SolutionOptions ?? GlobalOptions).OptionsContainer) {
							DefaultText = StringParser.Parse("${res:CSharpBinding.Formatting.ProjectOptionReference}")
						});
					projectFormattingPersistence.FormattingPolicyUpdated += OnFormattingPolicyUpdated;
					projectFormattingPersistence.Load();
					projectOptions[key] = projectFormattingPersistence;
				}
				
				return projectOptions[key];
			}
			
			return SolutionOptions ?? GlobalOptions;
		}