コード例 #1
0
        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>();
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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>();
        }
コード例 #5
0
        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>();
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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>();
 }