public static async Task <RazorHtmlCSharpLanguageServer> CreateAsync(
            Stream inputStream,
            Stream outputStream,
            IEnumerable <Lazy <IRequestHandler, IRequestHandlerMetadata> > requestHandlers,
            HTMLCSharpLanguageServerLogHubLoggerProvider loggerProvider,
            CancellationToken cancellationToken)
        {
            if (inputStream is null)
            {
                throw new ArgumentNullException(nameof(inputStream));
            }

            if (outputStream is null)
            {
                throw new ArgumentNullException(nameof(outputStream));
            }

            if (loggerProvider is null)
            {
                throw new ArgumentNullException(nameof(loggerProvider));
            }

            // Wait for logging infrastructure to initialize. This must be completed
            // before we can start listening via Json RPC (as we must link the log hub
            // trace source with Json RPC to facilitate structured logging / activity tracing).
            await loggerProvider.InitializeLoggerAsync(cancellationToken).ConfigureAwait(false);

            return(new RazorHtmlCSharpLanguageServer(inputStream, outputStream, requestHandlers, loggerProvider));
        }
Esempio n. 2
0
        public DefaultLSPProjectionProvider(
            LSPRequestInvoker requestInvoker,
            LSPDocumentSynchronizer documentSynchronizer,
            RazorLogger razorLogger,
            HTMLCSharpLanguageServerLogHubLoggerProvider loggerProvider)
        {
            if (requestInvoker is null)
            {
                throw new ArgumentNullException(nameof(requestInvoker));
            }

            if (documentSynchronizer is null)
            {
                throw new ArgumentNullException(nameof(documentSynchronizer));
            }

            if (razorLogger is null)
            {
                throw new ArgumentNullException(nameof(razorLogger));
            }

            if (loggerProvider is null)
            {
                throw new ArgumentNullException(nameof(loggerProvider));
            }

            _requestInvoker       = requestInvoker;
            _documentSynchronizer = documentSynchronizer;
            _activityLogger       = razorLogger;
            _loggerProvider       = loggerProvider;
        }
Esempio n. 3
0
        public SignatureHelpHandler(
            LSPRequestInvoker requestInvoker,
            LSPDocumentManager documentManager,
            LSPProjectionProvider projectionProvider,
            HTMLCSharpLanguageServerLogHubLoggerProvider loggerProvider)
        {
            if (requestInvoker is null)
            {
                throw new ArgumentNullException(nameof(requestInvoker));
            }

            if (documentManager is null)
            {
                throw new ArgumentNullException(nameof(documentManager));
            }

            if (projectionProvider is null)
            {
                throw new ArgumentNullException(nameof(projectionProvider));
            }

            _requestInvoker     = requestInvoker;
            _documentManager    = documentManager;
            _projectionProvider = projectionProvider;

            _logger = loggerProvider.CreateLogger(nameof(SignatureHelpHandler));
        }
        public CompletionHandler(
            JoinableTaskContext joinableTaskContext,
            LSPRequestInvoker requestInvoker,
            LSPDocumentManager documentManager,
            LSPProjectionProvider projectionProvider,
            ITextStructureNavigatorSelectorService textStructureNavigator,
            CompletionRequestContextCache completionRequestContextCache,
            FormattingOptionsProvider formattingOptionsProvider,
            HTMLCSharpLanguageServerLogHubLoggerProvider loggerProvider)
        {
            if (joinableTaskContext is null)
            {
                throw new ArgumentNullException(nameof(joinableTaskContext));
            }

            if (requestInvoker is null)
            {
                throw new ArgumentNullException(nameof(requestInvoker));
            }

            if (documentManager is null)
            {
                throw new ArgumentNullException(nameof(documentManager));
            }

            if (projectionProvider is null)
            {
                throw new ArgumentNullException(nameof(projectionProvider));
            }

            if (textStructureNavigator is null)
            {
                throw new ArgumentNullException(nameof(textStructureNavigator));
            }

            if (completionRequestContextCache is null)
            {
                throw new ArgumentNullException(nameof(completionRequestContextCache));
            }

            if (formattingOptionsProvider is null)
            {
                throw new ArgumentNullException(nameof(formattingOptionsProvider));
            }

            if (loggerProvider is null)
            {
                throw new ArgumentNullException(nameof(loggerProvider));
            }

            _joinableTaskFactory           = joinableTaskContext.Factory;
            _requestInvoker                = requestInvoker;
            _documentManager               = documentManager;
            _projectionProvider            = projectionProvider;
            _textStructureNavigator        = textStructureNavigator;
            _completionRequestContextCache = completionRequestContextCache;
            _formattingOptionsProvider     = formattingOptionsProvider;
            _logger = loggerProvider.CreateLogger(nameof(CompletionHandler));
        }
 public DefaultLSPDiagnosticsTranslator(
     LSPDocumentManager documentManager,
     LSPRequestInvoker requestInvoker,
     HTMLCSharpLanguageServerLogHubLoggerProvider loggerProvider)
 {
     _documentManager = documentManager;
     _requestInvoker  = requestInvoker;
     _loggerProvider  = loggerProvider;
 }
        private RazorHtmlCSharpLanguageServer(
            Stream inputStream,
            Stream outputStream,
            IEnumerable <Lazy <IRequestHandler, IRequestHandlerMetadata> > requestHandlers,
            HTMLCSharpLanguageServerLogHubLoggerProvider loggerProvider) : this(requestHandlers)
        {
            _jsonRpc = CreateJsonRpc(outputStream, inputStream, target: this);

            // Facilitates activity based tracing for structured logging within LogHub
            _jsonRpc.ActivityTracingStrategy = new CorrelationManagerTracingStrategy
            {
                TraceSource = loggerProvider.GetTraceSource()
            };

            _jsonRpc.StartListening();
        }
        public RazorHtmlCSharpLanguageServerClient(
            [ImportMany] IEnumerable <Lazy <IRequestHandler, IRequestHandlerMetadata> > requestHandlers,
            HTMLCSharpLanguageServerLogHubLoggerProvider loggerProvider)
        {
            if (requestHandlers is null)
            {
                throw new ArgumentNullException(nameof(requestHandlers));
            }

            if (loggerProvider is null)
            {
                throw new ArgumentNullException(nameof(loggerProvider));
            }

            _requestHandlers = requestHandlers;
            _loggerProvider  = loggerProvider;
        }
        public FindAllReferencesHandler(
            LSPRequestInvoker requestInvoker,
            LSPDocumentManager documentManager,
            LSPProjectionProvider projectionProvider,
            LSPDocumentMappingProvider documentMappingProvider,
            LSPProgressListener lspProgressListener,
            HTMLCSharpLanguageServerLogHubLoggerProvider loggerProvider)
        {
            if (requestInvoker is null)
            {
                throw new ArgumentNullException(nameof(requestInvoker));
            }

            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 (lspProgressListener is null)
            {
                throw new ArgumentNullException(nameof(lspProgressListener));
            }

            if (loggerProvider is null)
            {
                throw new ArgumentNullException(nameof(loggerProvider));
            }

            _requestInvoker          = requestInvoker;
            _documentManager         = documentManager;
            _projectionProvider      = projectionProvider;
            _documentMappingProvider = documentMappingProvider;
            _lspProgressListener     = lspProgressListener;

            _logger = loggerProvider.CreateLogger(nameof(FindAllReferencesHandler));
        }
Esempio n. 9
0
        public DefaultLSPProximityExpressionsProvider(
            LSPRequestInvoker requestInvoker,
            HTMLCSharpLanguageServerLogHubLoggerProvider loggerProvider)
        {
            if (requestInvoker is null)
            {
                throw new ArgumentNullException(nameof(requestInvoker));
            }

            if (loggerProvider is null)
            {
                throw new ArgumentNullException(nameof(loggerProvider));
            }

            _requestInvoker = requestInvoker;
            _loggerProvider = loggerProvider;
        }
Esempio n. 10
0
        public CompletionResolveHandler(
            LSPRequestInvoker requestInvoker,
            LSPDocumentManager documentManager,
            LSPDocumentMappingProvider documentMappingProvider,
            FormattingOptionsProvider formattingOptionsProvider,
            CompletionRequestContextCache completionRequestContextCache,
            HTMLCSharpLanguageServerLogHubLoggerProvider loggerProvider)
        {
            if (requestInvoker is null)
            {
                throw new ArgumentNullException(nameof(requestInvoker));
            }

            if (documentManager is null)
            {
                throw new ArgumentNullException(nameof(documentManager));
            }

            if (documentMappingProvider is null)
            {
                throw new ArgumentNullException(nameof(documentMappingProvider));
            }

            if (formattingOptionsProvider is null)
            {
                throw new ArgumentNullException(nameof(formattingOptionsProvider));
            }

            if (completionRequestContextCache is null)
            {
                throw new ArgumentNullException(nameof(completionRequestContextCache));
            }

            if (loggerProvider is null)
            {
                throw new ArgumentNullException(nameof(loggerProvider));
            }

            _requestInvoker                = requestInvoker;
            _documentManager               = documentManager;
            _documentMappingProvider       = documentMappingProvider;
            _formattingOptionsProvider     = formattingOptionsProvider;
            _completionRequestContextCache = completionRequestContextCache;

            _logger = loggerProvider.CreateLogger(nameof(CompletionResolveHandler));
        }
        public DocumentPullDiagnosticsHandler(
            LSPRequestInvoker requestInvoker,
            LSPDocumentManager documentManager,
            LSPDocumentSynchronizer documentSynchronizer,
            LSPDiagnosticsTranslator diagnosticsProvider,
            HTMLCSharpLanguageServerLogHubLoggerProvider loggerProvider)
        {
            if (requestInvoker is null)
            {
                throw new ArgumentNullException(nameof(requestInvoker));
            }

            if (documentManager is null)
            {
                throw new ArgumentNullException(nameof(documentManager));
            }

            if (documentSynchronizer is null)
            {
                throw new ArgumentNullException(nameof(documentSynchronizer));
            }

            if (diagnosticsProvider is null)
            {
                throw new ArgumentNullException(nameof(diagnosticsProvider));
            }

            if (loggerProvider == null)
            {
                throw new ArgumentNullException(nameof(loggerProvider));
            }

            _requestInvoker       = requestInvoker;
            _documentManager      = documentManager;
            _documentSynchronizer = documentSynchronizer;
            _diagnosticsProvider  = diagnosticsProvider;

            _logger = loggerProvider.CreateLogger(nameof(DocumentPullDiagnosticsHandler));
        }
        public RazorHtmlPublishDiagnosticsInterceptor(
            LSPDocumentManager documentManager,
            LSPDiagnosticsTranslator diagnosticsProvider,
            HTMLCSharpLanguageServerLogHubLoggerProvider loggerProvider)
        {
            if (documentManager is null)
            {
                throw new ArgumentNullException(nameof(documentManager));
            }

            if (diagnosticsProvider is null)
            {
                throw new ArgumentNullException(nameof(diagnosticsProvider));
            }

            if (loggerProvider == null)
            {
                throw new ArgumentNullException(nameof(loggerProvider));
            }

            _documentManager     = documentManager;
            _diagnosticsProvider = diagnosticsProvider;
            _loggerProvider      = loggerProvider;
        }