//public VbeEventCollectionModel Events { get; } public VbeModel(Microsoft.Vbe.Interop.VBE vbe) { Version = vbe.Version; Windows = new VbeWindowCollectionModel(vbe.Windows); Projects = new VbeProjectCollectionModel(vbe.VBProjects); ActiveVBProject = new VbeProjectModel(vbe.ActiveVBProject); Addins = new VbeAddinCollectionModel(vbe.Addins); MainWindow = new VbeWindowModel(vbe.MainWindow); //Events = new VbeEventCollectionModel(vbe.Events); }
public void Initialize(Microsoft.Vbe.Interop.VBE vbe) { if (_parser != null) { throw new InvalidOperationException("ParserState is already initialized."); } _vbe = new VBE(vbe); _state = new RubberduckParserState(null); _state.StateChanged += _state_StateChanged; Func <IVBAPreprocessor> preprocessorFactory = () => new VBAPreprocessor(double.Parse(_vbe.Version, CultureInfo.InvariantCulture)); _attributeParser = new AttributeParser(new ModuleExporter(), preprocessorFactory); _parser = new ParseCoordinator(_vbe, _state, _attributeParser, preprocessorFactory, new List <ICustomDeclarationLoader> { new DebugDeclarations(_state), new SpecialFormDeclarations(_state), new FormEventDeclarations(_state), new AliasDeclarations(_state), //new RubberduckApiDeclarations(_state) }); }
public void Initialize(Microsoft.Vbe.Interop.VBE vbe) { if (_parser != null) { throw new InvalidOperationException("ParserState is already initialized."); } _vbe = new VBE(vbe); _vbeEvents = VBEEvents.Initialize(_vbe); var declarationFinderFactory = new ConcurrentlyConstructedDeclarationFinderFactory(); var projectRepository = new ProjectsRepository(_vbe); _state = new RubberduckParserState(null, projectRepository, declarationFinderFactory, _vbeEvents); _state.StateChanged += _state_StateChanged; var exporter = new ModuleExporter(); Func <IVBAPreprocessor> preprocessorFactory = () => new VBAPreprocessor(double.Parse(_vbe.Version, CultureInfo.InvariantCulture)); _attributeParser = new AttributeParser(exporter, preprocessorFactory, _state.ProjectsProvider); var projectManager = new RepositoryProjectManager(projectRepository); var moduleToModuleReferenceManager = new ModuleToModuleReferenceManager(); var parserStateManager = new ParserStateManager(_state); var referenceRemover = new ReferenceRemover(_state, moduleToModuleReferenceManager); var supertypeClearer = new SupertypeClearer(_state); var comSynchronizer = new COMReferenceSynchronizer(_state, parserStateManager); var builtInDeclarationLoader = new BuiltInDeclarationLoader( _state, new List <ICustomDeclarationLoader> { new DebugDeclarations(_state), new SpecialFormDeclarations(_state), new FormEventDeclarations(_state), new AliasDeclarations(_state), //new RubberduckApiDeclarations(_state) } ); var parseRunner = new ParseRunner( _state, parserStateManager, preprocessorFactory, _attributeParser, exporter); var declarationResolveRunner = new DeclarationResolveRunner( _state, parserStateManager, comSynchronizer); var referenceResolveRunner = new ReferenceResolveRunner( _state, parserStateManager, moduleToModuleReferenceManager, referenceRemover); var parsingStageService = new ParsingStageService( comSynchronizer, builtInDeclarationLoader, parseRunner, declarationResolveRunner, referenceResolveRunner ); var parsingCacheService = new ParsingCacheService( _state, moduleToModuleReferenceManager, referenceRemover, supertypeClearer ); _parser = new ParseCoordinator( _state, parsingStageService, parsingCacheService, projectManager, parserStateManager ); }