private void AppConfigTrackerOnFileChanged(ProjectItem appConfigItem) { var newConfig = DteProjectReader.LoadSpecFlowConfigurationFromDteProject(project) ?? new SpecFlowProjectConfiguration(); if (newConfig.Equals(SpecFlowProjectConfiguration)) { return; } bool dialectServicesChanged = !newConfig.GeneratorConfiguration.FeatureLanguage.Equals(GherkinDialectServices.DefaultLanguage); SpecFlowProjectConfiguration = newConfig; this.visualStudioTracer.Trace("SpecFlow configuration changed", "VsProjectScope"); if (SpecFlowProjectConfigurationChanged != null) { SpecFlowProjectConfigurationChanged(this, EventArgs.Empty); } if (dialectServicesChanged) { GherkinDialectServices = new GherkinDialectServices(SpecFlowProjectConfiguration.GeneratorConfiguration.FeatureLanguage); this.visualStudioTracer.Trace("default language changed", "VsProjectScope"); if (GherkinDialectServicesChanged != null) { GherkinDialectServicesChanged(this, EventArgs.Empty); } } }
internal VsProjectScope(Project project, DteWithEvents dteWithEvents, GherkinFileEditorClassifications classifications, IVisualStudioTracer visualStudioTracer) { Classifications = classifications; this.project = project; this.visualStudioTracer = visualStudioTracer; //TODO: register for file changes, etc. parser = new GherkinTextBufferParser(this, visualStudioTracer); analyzer = new GherkinScopeAnalyzer(this, visualStudioTracer); GherkinProcessingScheduler = new GherkinProcessingScheduler(visualStudioTracer); specFlowProjectConfigurationReference = new SynchInitializedInstance <SpecFlowProjectConfiguration>(() => DteProjectReader.LoadSpecFlowConfigurationFromDteProject(project) ?? new SpecFlowProjectConfiguration()); gherkinDialectServicesReference = new SynchInitializedInstance <GherkinDialectServices>(() => new GherkinDialectServices(SpecFlowProjectConfiguration.GeneratorConfiguration.FeatureLanguage)); appConfigTracker = new VsProjectFileTracker(project, "App.config", dteWithEvents, visualStudioTracer); appConfigTracker.FileChanged += AppConfigTrackerOnFileChanged; }
private SpecFlowProjectConfiguration LoadConfiguration() { return(DteProjectReader.LoadSpecFlowConfigurationFromDteProject(project) ?? new SpecFlowProjectConfiguration()); }