public DefaultVisualStudioDocumentTrackerFactory( TextBufferProjectService projectService, ITextDocumentFactoryService textDocumentFactory, VisualStudioWorkspaceAccessor workspaceAccessor, ImportDocumentManager importDocumentManager) { if (projectService == null) { throw new ArgumentNullException(nameof(projectService)); } if (textDocumentFactory == null) { throw new ArgumentNullException(nameof(textDocumentFactory)); } if (workspaceAccessor == null) { throw new ArgumentNullException(nameof(workspaceAccessor)); } _projectService = projectService; _textDocumentFactory = textDocumentFactory; _workspace = workspaceAccessor.Workspace; _importDocumentManager = importDocumentManager; _foregroundDispatcher = _workspace.Services.GetRequiredService <ForegroundDispatcher>(); var razorLanguageServices = _workspace.Services.GetLanguageServices(RazorLanguage.Name); _projectManager = razorLanguageServices.GetRequiredService <ProjectSnapshotManager>(); _editorSettingsManager = razorLanguageServices.GetRequiredService <EditorSettingsManagerInternal>(); }
public DefaultImportDocumentManager( [Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider, VisualStudioWorkspaceAccessor workspaceAccessor) { if (serviceProvider == null) { throw new ArgumentNullException(nameof(serviceProvider)); } if (workspaceAccessor == null) { throw new ArgumentNullException(nameof(workspaceAccessor)); } _fileChangeService = serviceProvider.GetService(typeof(SVsFileChangeEx)) as IVsFileChangeEx; var workspace = workspaceAccessor.Workspace; _foregroundDispatcher = workspace.Services.GetRequiredService <ForegroundDispatcher>(); _errorReporter = workspace.Services.GetRequiredService <ErrorReporter>(); var razorLanguageServices = workspace.Services.GetLanguageServices(RazorLanguage.Name); _templateEngineFactoryService = razorLanguageServices.GetRequiredService <RazorTemplateEngineFactoryService>(); _importTrackerCache = new Dictionary <string, ImportTracker>(StringComparer.OrdinalIgnoreCase); }
public DefaultRazorProximityExpressionResolver( FileUriProvider fileUriProvider, LSPDocumentManager documentManager, LSPProjectionProvider projectionProvider, VisualStudioWorkspaceAccessor workspaceAccessor) { if (fileUriProvider is null) { throw new ArgumentNullException(nameof(fileUriProvider)); } if (documentManager is null) { throw new ArgumentNullException(nameof(documentManager)); } if (projectionProvider is null) { throw new ArgumentNullException(nameof(projectionProvider)); } if (workspaceAccessor is null) { throw new ArgumentNullException(nameof(workspaceAccessor)); } _fileUriProvider = fileUriProvider; _documentManager = documentManager; _projectionProvider = projectionProvider; _workspaceAccessor = workspaceAccessor; // 10 is a magic number where this effectively represents our ability to cache the last 10 "hit" breakpoint locations // corresponding proximity expressions which enables us not to go "async" in those re-hit scenarios. _cache = new MemoryCache <CacheKey, IReadOnlyList <string> >(sizeLimit: 10); }
public ProjectBuildChangeTrigger(VisualStudioWorkspaceAccessor workspaceAccessor) { if (workspaceAccessor == null) { throw new ArgumentNullException(nameof(workspaceAccessor)); } _foregroundDispatcher = workspaceAccessor.Workspace.Services.GetRequiredService <ForegroundDispatcher>(); var languageServices = workspaceAccessor.Workspace.Services.GetLanguageServices(RazorLanguage.Name); _projectService = languageServices.GetRequiredService <TextBufferProjectService>(); }
public DefaultRazorEditorFactoryService(VisualStudioWorkspaceAccessor workspaceAccessor) { if (workspaceAccessor == null) { throw new ArgumentNullException(nameof(workspaceAccessor)); } var razorLanguageServices = workspaceAccessor.Workspace.Services.GetLanguageServices(RazorLanguage.Name); _documentTrackerFactory = razorLanguageServices.GetRequiredService <VisualStudioDocumentTrackerFactory>(); _parserFactory = razorLanguageServices.GetRequiredService <VisualStudioRazorParserFactory>(); _braceSmartIndenterFactory = razorLanguageServices.GetRequiredService <BraceSmartIndenterFactory>(); }
public DefaultRazorBreakpointResolver( FileUriProvider fileUriProvider, LSPDocumentManager documentManager, LSPProjectionProvider projectionProvider, LSPDocumentMappingProvider documentMappingProvider, VisualStudioWorkspaceAccessor workspaceAccessor) { if (fileUriProvider is null) { throw new ArgumentNullException(nameof(fileUriProvider)); } if (documentManager is null) { throw new ArgumentNullException(nameof(documentManager)); } if (projectionProvider is null) { throw new ArgumentNullException(nameof(projectionProvider)); } if (documentMappingProvider is null) { throw new ArgumentNullException(nameof(documentMappingProvider)); } if (workspaceAccessor is null) { throw new ArgumentNullException(nameof(workspaceAccessor)); } _fileUriProvider = fileUriProvider; _documentManager = documentManager; _projectionProvider = projectionProvider; _documentMappingProvider = documentMappingProvider; _workspaceAccessor = workspaceAccessor; // 4 is a magic number that was determined based on the functionality of VisualStudio. Currently when you set or edit a breakpoint // we get called with two different locations for the same breakpoint. Because of this 2 time call our size must be at least 2, // we grow it to 4 just to be safe for lesser known scenarios. _cache = new MemoryCache <CacheKey, Range>(sizeLimit: 4); }
public VsSolutionUpdatesProjectSnapshotChangeTrigger( [Import(typeof(SVsServiceProvider))] IServiceProvider services, VisualStudioWorkspaceAccessor workspaceAccessor) { if (services == null) { throw new ArgumentNullException(nameof(services)); } if (workspaceAccessor == null) { throw new ArgumentNullException(nameof(workspaceAccessor)); } _services = services; var languageServices = workspaceAccessor.Workspace.Services.GetLanguageServices(RazorLanguage.Name); _projectService = languageServices.GetRequiredService <TextBufferProjectService>(); }
public RazorDocumentControllerExtension() { _workspaceAccessor = CompositionManager.Instance.GetExportedValue <VisualStudioMacWorkspaceAccessor>(); }