コード例 #1
0
 /// <summary>
 /// Construct a new ReferencesCodeLensProvider for a given EditorSession.
 /// </summary>
 /// <param name="workspaceService"></param>
 /// <param name="symbolsService"></param>
 public ReferencesCodeLensProvider(WorkspaceService workspaceService, SymbolsService symbolsService)
 {
     _workspaceService = workspaceService;
     _symbolsService   = symbolsService;
     // TODO: Pull this from components
     _symbolProvider = new ScriptDocumentSymbolProvider();
 }
コード例 #2
0
        /// <summary>
        /// Constructs an instance of the SymbolsService class and uses
        /// the given Runspace to execute language service operations.
        /// </summary>
        /// <param name="factory">An ILoggerFactory implementation used for writing log messages.</param>
        public SymbolsService(
            ILoggerFactory factory,
            PowerShellContextService powerShellContextService,
            WorkspaceService workspaceService)
        {
            _logger = factory.CreateLogger <SymbolsService>();
            _powerShellContextService = powerShellContextService;
            _workspaceService         = workspaceService;

            _codeLensProviders = new ConcurrentDictionary <string, ICodeLensProvider>();
            var codeLensProviders = new ICodeLensProvider[]
            {
                new ReferencesCodeLensProvider(_workspaceService, this),
                new PesterCodeLensProvider(),
            };

            foreach (ICodeLensProvider codeLensProvider in codeLensProviders)
            {
                _codeLensProviders.TryAdd(codeLensProvider.ProviderId, codeLensProvider);
            }

            _documentSymbolProviders = new ConcurrentDictionary <string, IDocumentSymbolProvider>();
            var documentSymbolProviders = new IDocumentSymbolProvider[]
            {
                new ScriptDocumentSymbolProvider(),
                new PsdDocumentSymbolProvider(),
                new PesterDocumentSymbolProvider(),
            };

            foreach (IDocumentSymbolProvider documentSymbolProvider in documentSymbolProviders)
            {
                _documentSymbolProviders.TryAdd(documentSymbolProvider.ProviderId, documentSymbolProvider);
            }
        }
コード例 #3
0
        /// <summary>
        /// Construct a new ReferencesCodeLensProvider for a given EditorSession.
        /// </summary>
        /// <param name="editorSession"></param>
        public ReferencesCodeLensProvider(EditorSession editorSession)
        {
            _editorSession = editorSession;

            // TODO: Pull this from components
            _symbolProvider = new ScriptDocumentSymbolProvider(
                editorSession.PowerShellContext.LocalPowerShellVersion.Version);
        }
コード例 #4
0
        /// <summary>
        /// Constructs an instance of the SymbolsService class and uses
        /// the given Runspace to execute language service operations.
        /// </summary>
        /// <param name="factory">An ILoggerFactory implementation used for writing log messages.</param>
        /// <param name="runspaceContext"></param>
        /// <param name="executionService"></param>
        /// <param name="workspaceService"></param>
        /// <param name="configurationService"></param>
        public SymbolsService(
            ILoggerFactory factory,
            IRunspaceContext runspaceContext,
            IInternalPowerShellExecutionService executionService,
            WorkspaceService workspaceService,
            ConfigurationService configurationService)
        {
            _logger           = factory.CreateLogger <SymbolsService>();
            _runspaceContext  = runspaceContext;
            _executionService = executionService;
            _workspaceService = workspaceService;

            _codeLensProviders = new ConcurrentDictionary <string, ICodeLensProvider>();
            ICodeLensProvider[] codeLensProviders = new ICodeLensProvider[]
            {
                new ReferencesCodeLensProvider(_workspaceService, this),
                new PesterCodeLensProvider(configurationService)
            };

            foreach (ICodeLensProvider codeLensProvider in codeLensProviders)
            {
                _codeLensProviders.TryAdd(codeLensProvider.ProviderId, codeLensProvider);
            }

            _documentSymbolProviders = new ConcurrentDictionary <string, IDocumentSymbolProvider>();
            IDocumentSymbolProvider[] documentSymbolProviders = new IDocumentSymbolProvider[]
            {
                new ScriptDocumentSymbolProvider(),
                new PsdDocumentSymbolProvider(),
                new PesterDocumentSymbolProvider(),
            };
            foreach (IDocumentSymbolProvider documentSymbolProvider in documentSymbolProviders)
            {
                _documentSymbolProviders.TryAdd(documentSymbolProvider.ProviderId, documentSymbolProvider);
            }
        }
コード例 #5
0
 public bool TryRegisterDocumentSymbolProvider(IDocumentSymbolProvider documentSymbolProvider)
 {
     return(_documentSymbolProviders.TryAdd(documentSymbolProvider.ProviderId, documentSymbolProvider));
 }
コード例 #6
0
 public bool TryRegisterDocumentSymbolProvider(IDocumentSymbolProvider documentSymbolProvider) => _documentSymbolProviders.TryAdd(documentSymbolProvider.ProviderId, documentSymbolProvider);
コード例 #7
0
 /// <summary>
 /// Create a new Pester CodeLens provider for a given editor session.
 /// </summary>
 public PesterCodeLensProvider(ConfigurationService configurationService)
 {
     _configurationService = configurationService;
     _symbolProvider       = new PesterDocumentSymbolProvider();
 }
コード例 #8
0
 public ExternalDocumentSymbolProviderAdapter(
     IDocumentSymbolProvider externalDocumentSymbolProvider)
 {
     _symbolProvider = externalDocumentSymbolProvider;
 }
コード例 #9
0
 public bool RegisterDocumentSymbolProvider(IDocumentSymbolProvider documentSymbolProvider)
 {
     return(_symbolsService.TryRegisterDocumentSymbolProvider(new ExternalDocumentSymbolProviderAdapter(documentSymbolProvider)));
 }
コード例 #10
0
 /// <summary>
 /// Create a new Pester CodeLens provider for a given editor session.
 /// </summary>
 /// <param name="editorSession">The editor session context for which to provide Pester CodeLenses.</param>
 public PesterCodeLensProvider(EditorSession editorSession)
 {
     _editorSession  = editorSession;
     _symbolProvider = new PesterDocumentSymbolProvider();
 }
コード例 #11
0
 /// <summary>
 /// Create a new Pester CodeLens provider for a given editor session.
 /// </summary>
 public PesterCodeLensProvider()
 {
     _symbolProvider = new PesterDocumentSymbolProvider();
 }