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(); }
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(); }
protected override void Load(ICSharpCode.SharpDevelop.Project.MSBuildBasedProject project, string configuration, string platform) { base.Load(project, configuration, platform); if (formattingPolicy != null) { formattingPolicy.OptionsContainer.PropertyChanged -= ContainerPropertyChanged; } formattingPolicy = CSharpFormattingPolicies.Instance.GetProjectOptions(project); formattingEditor.OptionsContainer = formattingPolicy.OptionsContainer; formattingEditor.AllowPresets = true; formattingEditor.OverrideGlobalIndentation = true; formattingPolicy.OptionsContainer.PropertyChanged += ContainerPropertyChanged; }
void SolutionClosed(object sender, SolutionEventArgs e) { SolutionOptions.FormattingPolicyUpdated -= OnFormattingPolicyUpdated; SolutionOptions = null; projectOptions.Clear(); }