internal VisualStudioInProcLanguageServer( AbstractRequestDispatcherFactory requestDispatcherFactory, JsonRpc jsonRpc, ICapabilitiesProvider capabilitiesProvider, ILspWorkspaceRegistrationService workspaceRegistrationService, IAsynchronousOperationListenerProvider listenerProvider, ILspLogger logger, IDiagnosticService?diagnosticService, string?clientName, string userVisibleServerName, string telemetryServerTypeName) : base(requestDispatcherFactory, jsonRpc, capabilitiesProvider, workspaceRegistrationService, listenerProvider, logger, clientName, userVisibleServerName, telemetryServerTypeName) { _diagnosticService = diagnosticService; // Dedupe on DocumentId. If we hear about the same document multiple times, we only need to process that id once. _diagnosticsWorkQueue = new AsyncBatchingWorkQueue <DocumentId>( TimeSpan.FromMilliseconds(250), (ids, ct) => ProcessDiagnosticUpdatedBatchAsync(_diagnosticService, ids, ct), EqualityComparer <DocumentId> .Default, Listener, Queue.CancellationToken); if (_diagnosticService != null) { _diagnosticService.DiagnosticsUpdated += DiagnosticService_DiagnosticsUpdated; } }
public static async Task <InProcLanguageServer> CreateAsync( AbstractInProcLanguageClient languageClient, Stream inputStream, Stream outputStream, RequestDispatcher requestDispatcher, Workspace workspace, IDiagnosticService?diagnosticService, IAsynchronousOperationListenerProvider listenerProvider, ILspWorkspaceRegistrationService lspWorkspaceRegistrationService, VSShell.IAsyncServiceProvider?asyncServiceProvider, string?clientName, CancellationToken cancellationToken) { var jsonMessageFormatter = new JsonMessageFormatter(); VSExtensionUtilities.AddVSExtensionConverters(jsonMessageFormatter.JsonSerializer); var jsonRpc = new JsonRpc(new HeaderDelimitedMessageHandler(outputStream, inputStream, jsonMessageFormatter)); var serverTypeName = languageClient.GetType().Name; var logger = await CreateLoggerAsync(asyncServiceProvider, serverTypeName, clientName, jsonRpc, cancellationToken).ConfigureAwait(false); return(new InProcLanguageServer( languageClient, requestDispatcher, workspace, diagnosticService, listenerProvider, lspWorkspaceRegistrationService, serverTypeName, clientName, jsonRpc, logger)); }
public static RequestContext Create( bool requiresLSPSolution, TextDocumentIdentifier?textDocument, string?clientName, ClientCapabilities clientCapabilities, ILspWorkspaceRegistrationService lspWorkspaceRegistrationService, Dictionary <Workspace, (Solution workspaceSolution, Solution lspSolution)>?solutionCache,
internal static async Task <ILanguageServerTarget> CreateAsync( AbstractInProcLanguageClient languageClient, Stream inputStream, Stream outputStream, ILspWorkspaceRegistrationService lspWorkspaceRegistrationService, VSShell.IAsyncServiceProvider?asyncServiceProvider, string?clientName, CancellationToken cancellationToken) { var jsonMessageFormatter = new JsonMessageFormatter(); VSExtensionUtilities.AddVSExtensionConverters(jsonMessageFormatter.JsonSerializer); var jsonRpc = new JsonRpc(new HeaderDelimitedMessageHandler(outputStream, inputStream, jsonMessageFormatter)) { ExceptionStrategy = ExceptionProcessing.ISerializable, }; var serverTypeName = languageClient.GetType().Name; var logger = await CreateLoggerAsync(asyncServiceProvider, serverTypeName, clientName, jsonRpc, cancellationToken).ConfigureAwait(false); var server = languageClient.Create( jsonRpc, languageClient, lspWorkspaceRegistrationService, logger ?? NoOpLspLogger.Instance); jsonRpc.StartListening(); return(server); }
internal LanguageServerTarget( AbstractRequestDispatcherFactory requestDispatcherFactory, JsonRpc jsonRpc, ICapabilitiesProvider capabilitiesProvider, ILspWorkspaceRegistrationService workspaceRegistrationService, IGlobalOptionService globalOptions, IAsynchronousOperationListenerProvider listenerProvider, ILspLogger logger, ImmutableArray <string> supportedLanguages, string?clientName, string userVisibleServerName, string telemetryServerTypeName) { GlobalOptions = globalOptions; RequestDispatcher = requestDispatcherFactory.CreateRequestDispatcher(supportedLanguages); _capabilitiesProvider = capabilitiesProvider; WorkspaceRegistrationService = workspaceRegistrationService; Logger = logger; JsonRpc = jsonRpc; JsonRpc.AddLocalRpcTarget(this); JsonRpc.Disconnected += JsonRpc_Disconnected; Listener = listenerProvider.GetListener(FeatureAttribute.LanguageServer); ClientName = clientName; _userVisibleServerName = userVisibleServerName; TelemetryServerName = telemetryServerTypeName; Queue = new RequestExecutionQueue(logger, workspaceRegistrationService, globalOptions, supportedLanguages, userVisibleServerName, TelemetryServerName); Queue.RequestServerShutdown += RequestExecutionQueue_Errored; }
public TypeScriptWorkspaceSymbolsHandlerShim( ILspWorkspaceRegistrationService workspaceRegistrationService, IAsynchronousOperationListenerProvider listenerProvider, IThreadingContext threadingContext) : base(listenerProvider, threadingContext) { _workspaceRegistrationService = workspaceRegistrationService; }
public XamlInProcLanguageClient( XamlRequestDispatcherFactory xamlDispatcherFactory, VisualStudioWorkspace workspace, IDiagnosticService diagnosticService, IAsynchronousOperationListenerProvider listenerProvider, ILspWorkspaceRegistrationService lspWorkspaceRegistrationService) : base(xamlDispatcherFactory, workspace, diagnosticService, listenerProvider, lspWorkspaceRegistrationService, diagnosticsClientName: null) { }
public XamlInProcLanguageClient( XamlLanguageServerProtocol languageServerProtocol, VisualStudioWorkspace workspace, IDiagnosticService diagnosticService, IAsynchronousOperationListenerProvider listenerProvider, ILspWorkspaceRegistrationService lspWorkspaceRegistrationService) : base(languageServerProtocol, workspace, diagnosticService, listenerProvider, lspWorkspaceRegistrationService, diagnosticsClientName: null) { }
public AlwaysActivateInProcLanguageClient( IGlobalOptionService globalOptionService, LanguageServerProtocol languageServerProtocol, VisualStudioWorkspace workspace, IAsynchronousOperationListenerProvider listenerProvider, ILspWorkspaceRegistrationService lspWorkspaceRegistrationService) : base(languageServerProtocol, workspace, diagnosticService: null, listenerProvider, lspWorkspaceRegistrationService, diagnosticsClientName: null) { _globalOptionService = globalOptionService; }
public AlwaysActivateInProcLanguageClient( IGlobalOptionService globalOptionService, CSharpVisualBasicRequestDispatcherFactory csharpVBRequestDispatcherFactory, VisualStudioWorkspace workspace, IAsynchronousOperationListenerProvider listenerProvider, ILspWorkspaceRegistrationService lspWorkspaceRegistrationService) : base(csharpVBRequestDispatcherFactory, workspace, diagnosticService: null, listenerProvider, lspWorkspaceRegistrationService, diagnosticsClientName: null) { _globalOptionService = globalOptionService; }
public XamlInProcLanguageClient( XamlRequestDispatcherFactory xamlDispatcherFactory, VisualStudioWorkspace workspace, IDiagnosticService diagnosticService, IAsynchronousOperationListenerProvider listenerProvider, ILspWorkspaceRegistrationService lspWorkspaceRegistrationService, [Import(typeof(SAsyncServiceProvider))] VSShell.IAsyncServiceProvider asyncServiceProvider, IThreadingContext threadingContext) : base(xamlDispatcherFactory, workspace, diagnosticService, listenerProvider, lspWorkspaceRegistrationService, asyncServiceProvider, threadingContext, diagnosticsClientName: null) { }
public LiveShareInProcLanguageClient( CSharpVisualBasicRequestDispatcherFactory csharpVBRequestDispatcherFactory, VisualStudioWorkspace workspace, IDiagnosticService diagnosticService, IAsynchronousOperationListenerProvider listenerProvider, ILspWorkspaceRegistrationService lspWorkspaceRegistrationService, DefaultCapabilitiesProvider defaultCapabilitiesProvider) : base(csharpVBRequestDispatcherFactory, workspace, diagnosticService, listenerProvider, lspWorkspaceRegistrationService, diagnosticsClientName: null) { _defaultCapabilitiesProvider = defaultCapabilitiesProvider; }
public LiveShareInProcLanguageClient( LanguageServerProtocol languageServerProtocol, VisualStudioWorkspace workspace, IDiagnosticService diagnosticService, IAsynchronousOperationListenerProvider listenerProvider, ILspWorkspaceRegistrationService lspWorkspaceRegistrationService, DefaultCapabilitiesProvider defaultCapabilitiesProvider) : base(languageServerProtocol, workspace, diagnosticService, listenerProvider, lspWorkspaceRegistrationService, diagnosticsClientName: null) { _defaultCapabilitiesProvider = defaultCapabilitiesProvider; }
public XamlInProcLanguageClient( XamlRequestDispatcherFactory xamlDispatcherFactory, IGlobalOptionService globalOptions, IDiagnosticService diagnosticService, IAsynchronousOperationListenerProvider listenerProvider, ILspWorkspaceRegistrationService lspWorkspaceRegistrationService, ILspLoggerFactory lspLoggerFactory, IThreadingContext threadingContext) : base(xamlDispatcherFactory, globalOptions, diagnosticService, listenerProvider, lspWorkspaceRegistrationService, lspLoggerFactory, threadingContext, diagnosticsClientName: null) { }
public AlwaysActivateInProcLanguageClient( RequestDispatcherFactory csharpVBRequestDispatcherFactory, IGlobalOptionService globalOptions, IAsynchronousOperationListenerProvider listenerProvider, ILspWorkspaceRegistrationService lspWorkspaceRegistrationService, DefaultCapabilitiesProvider defaultCapabilitiesProvider, ILspLoggerFactory lspLoggerFactory, IThreadingContext threadingContext) : base(csharpVBRequestDispatcherFactory, globalOptions, diagnosticService: null, listenerProvider, lspWorkspaceRegistrationService, lspLoggerFactory, threadingContext, diagnosticsClientName: null) { _defaultCapabilitiesProvider = defaultCapabilitiesProvider; }
public AlwaysActivateInProcLanguageClient( CSharpVisualBasicRequestDispatcherFactory csharpVBRequestDispatcherFactory, VisualStudioWorkspace workspace, IAsynchronousOperationListenerProvider listenerProvider, ILspWorkspaceRegistrationService lspWorkspaceRegistrationService, DefaultCapabilitiesProvider defaultCapabilitiesProvider, [Import(typeof(SAsyncServiceProvider))] VSShell.IAsyncServiceProvider asyncServiceProvider, IThreadingContext threadingContext) : base(csharpVBRequestDispatcherFactory, workspace, diagnosticService: null, listenerProvider, lspWorkspaceRegistrationService, asyncServiceProvider, threadingContext, diagnosticsClientName: null) { _defaultCapabilitiesProvider = defaultCapabilitiesProvider; }
public RazorInProcLanguageClient( RequestDispatcherFactory csharpVBRequestDispatcherFactory, VisualStudioWorkspace workspace, IDiagnosticService diagnosticService, IAsynchronousOperationListenerProvider listenerProvider, ILspWorkspaceRegistrationService lspWorkspaceRegistrationService, DefaultCapabilitiesProvider defaultCapabilitiesProvider, IThreadingContext threadingContext, ILspLoggerFactory lspLoggerFactory) : base(csharpVBRequestDispatcherFactory, workspace, diagnosticService, listenerProvider, lspWorkspaceRegistrationService, lspLoggerFactory, threadingContext, ClientName) { _defaultCapabilitiesProvider = defaultCapabilitiesProvider; }
public RazorInProcLanguageClient( IGlobalOptionService globalOptionService, LanguageServerProtocol languageServerProtocol, VisualStudioWorkspace workspace, IDiagnosticService diagnosticService, IAsynchronousOperationListenerProvider listenerProvider, ILspWorkspaceRegistrationService lspWorkspaceRegistrationService, DefaultCapabilitiesProvider defaultCapabilitiesProvider) : base(languageServerProtocol, workspace, diagnosticService, listenerProvider, lspWorkspaceRegistrationService, ClientName) { _globalOptionService = globalOptionService; _defaultCapabilitiesProvider = defaultCapabilitiesProvider; }
public AbstractInProcLanguageClient( AbstractRequestHandlerProvider requestHandlerProvider, VisualStudioWorkspace workspace, IDiagnosticService?diagnosticService, IAsynchronousOperationListenerProvider listenerProvider, ILspWorkspaceRegistrationService lspWorkspaceRegistrationService, string?diagnosticsClientName) { _requestHandlerProvider = requestHandlerProvider; Workspace = workspace; _diagnosticService = diagnosticService; _listenerProvider = listenerProvider; _lspWorkspaceRegistrationService = lspWorkspaceRegistrationService; _diagnosticsClientName = diagnosticsClientName; }
public ILanguageServerTarget Create( JsonRpc jsonRpc, ICapabilitiesProvider capabilitiesProvider, ILspWorkspaceRegistrationService workspaceRegistrationService, ILspLogger logger) { return(new LanguageServerTarget( _dispatcherFactory, jsonRpc, capabilitiesProvider, workspaceRegistrationService, _listenerProvider, logger, clientName: null, userVisibleServerName: UserVisibleName, telemetryServerTypeName: this.GetType().Name)); }
public ILanguageServerTarget Create( JsonRpc jsonRpc, ICapabilitiesProvider capabilitiesProvider, ILspWorkspaceRegistrationService workspaceRegistrationService, ILspLogger logger) { return(new VisualStudioInProcLanguageServer( _requestDispatcherFactory, jsonRpc, capabilitiesProvider, workspaceRegistrationService, _listenerProvider, logger, _diagnosticService, clientName: _diagnosticsClientName, userVisibleServerName: this.Name, telemetryServerTypeName: this.GetType().Name)); }
public InProcLanguageServer( AbstractInProcLanguageClient languageClient, Stream inputStream, Stream outputStream, AbstractRequestHandlerProvider requestHandlerProvider, Workspace workspace, IDiagnosticService?diagnosticService, IAsynchronousOperationListenerProvider listenerProvider, ILspWorkspaceRegistrationService lspWorkspaceRegistrationService, string?clientName) { _languageClient = languageClient; _requestHandlerProvider = requestHandlerProvider; _workspace = workspace; var jsonMessageFormatter = new JsonMessageFormatter(); jsonMessageFormatter.JsonSerializer.Converters.Add(new VSExtensionConverter <TextDocumentIdentifier, VSTextDocumentIdentifier>()); jsonMessageFormatter.JsonSerializer.Converters.Add(new VSExtensionConverter <ClientCapabilities, VSClientCapabilities>()); _jsonRpc = new JsonRpc(new HeaderDelimitedMessageHandler(outputStream, inputStream, jsonMessageFormatter)); _jsonRpc.AddLocalRpcTarget(this); _jsonRpc.StartListening(); _diagnosticService = diagnosticService; _listener = listenerProvider.GetListener(FeatureAttribute.LanguageServer); _clientName = clientName; _queue = new RequestExecutionQueue(lspWorkspaceRegistrationService, languageClient.Name, _languageClient.GetType().Name); _queue.RequestServerShutdown += RequestExecutionQueue_Errored; // Dedupe on DocumentId. If we hear about the same document multiple times, we only need to process that id once. _diagnosticsWorkQueue = new AsyncBatchingWorkQueue <DocumentId>( TimeSpan.FromMilliseconds(250), ProcessDiagnosticUpdatedBatchAsync, EqualityComparer <DocumentId> .Default, _listener, _queue.CancellationToken); if (_diagnosticService != null) { _diagnosticService.DiagnosticsUpdated += DiagnosticService_DiagnosticsUpdated; } }
public AbstractInProcLanguageClient( AbstractRequestDispatcherFactory requestDispatcherFactory, VisualStudioWorkspace workspace, IDiagnosticService?diagnosticService, IAsynchronousOperationListenerProvider listenerProvider, ILspWorkspaceRegistrationService lspWorkspaceRegistrationService, VSShell.IAsyncServiceProvider asyncServiceProvider, IThreadingContext threadingContext, string?diagnosticsClientName) { _requestDispatcherFactory = requestDispatcherFactory; Workspace = workspace; _diagnosticService = diagnosticService; _listenerProvider = listenerProvider; _lspWorkspaceRegistrationService = lspWorkspaceRegistrationService; _diagnosticsClientName = diagnosticsClientName; _asyncServiceProvider = asyncServiceProvider; _threadingContext = threadingContext; }
public AbstractInProcLanguageClient( AbstractRequestDispatcherFactory requestDispatcherFactory, IGlobalOptionService globalOptions, IDiagnosticService?diagnosticService, IAsynchronousOperationListenerProvider listenerProvider, ILspWorkspaceRegistrationService lspWorkspaceRegistrationService, ILspLoggerFactory lspLoggerFactory, IThreadingContext threadingContext, string?diagnosticsClientName) { _requestDispatcherFactory = requestDispatcherFactory; GlobalOptions = globalOptions; _diagnosticService = diagnosticService; _listenerProvider = listenerProvider; _lspWorkspaceRegistrationService = lspWorkspaceRegistrationService; _diagnosticsClientName = diagnosticsClientName; _lspLoggerFactory = lspLoggerFactory; _threadingContext = threadingContext; }
private InProcLanguageServer( AbstractInProcLanguageClient languageClient, RequestDispatcher requestDispatcher, Workspace workspace, IDiagnosticService?diagnosticService, IAsynchronousOperationListenerProvider listenerProvider, ILspWorkspaceRegistrationService lspWorkspaceRegistrationService, string serverTypeName, string?clientName, JsonRpc jsonRpc, LogHubLspLogger?logger) { _languageClient = languageClient; _requestDispatcher = requestDispatcher; _workspace = workspace; _logger = logger; _jsonRpc = jsonRpc; _jsonRpc.AddLocalRpcTarget(this); _jsonRpc.StartListening(); _diagnosticService = diagnosticService; _listener = listenerProvider.GetListener(FeatureAttribute.LanguageServer); _clientName = clientName; _queue = new RequestExecutionQueue(logger ?? NoOpLspLogger.Instance, lspWorkspaceRegistrationService, languageClient.Name, serverTypeName); _queue.RequestServerShutdown += RequestExecutionQueue_Errored; // Dedupe on DocumentId. If we hear about the same document multiple times, we only need to process that id once. _diagnosticsWorkQueue = new AsyncBatchingWorkQueue <DocumentId>( TimeSpan.FromMilliseconds(250), ProcessDiagnosticUpdatedBatchAsync, EqualityComparer <DocumentId> .Default, _listener, _queue.CancellationToken); if (_diagnosticService != null) { _diagnosticService.DiagnosticsUpdated += DiagnosticService_DiagnosticsUpdated; } }
public TypeScriptCompletionResolverHandlerShim(ILspWorkspaceRegistrationService workspaceRegistrationService) : base(completionListCache: new CompletionListCache()) { _workspaceRegistrationService = workspaceRegistrationService; }
public TypeScriptCompletionHandlerShim(ILspWorkspaceRegistrationService workspaceRegistrationService) : base(completionProviders: Array.Empty <Lazy <CompletionProvider, CompletionProviderMetadata> >(), new CompletionListCache()) { _workspaceRegistrationService = workspaceRegistrationService; }
public static LSP.RequestContext CreateRequestContext <TRequest, TResponse>(this IRequestHandler <TRequest, TResponse> requestHandler, TRequest request, ILspWorkspaceRegistrationService workspaceRegistrationService, ClientCapabilities clientCapabilities, string?clientName = null) { var textDocument = requestHandler.GetTextDocumentIdentifier(request); return(LSP.RequestContext.Create(requiresLSPSolution: true, textDocument, clientName, NoOpLspLogger.Instance, clientCapabilities, workspaceRegistrationService, null, null, out _)); }
public TypeScriptSignatureHelpHandlerShim([ImportMany] IEnumerable <Lazy <ISignatureHelpProvider, OrderableLanguageMetadata> > allProviders, ILspWorkspaceRegistrationService workspaceRegistrationService) : base(allProviders) { _workspaceRegistrationService = workspaceRegistrationService; }
public TypeScriptFindImplementationsHandlerShim(ILspWorkspaceRegistrationService workspaceRegistrationService, IThreadingContext threadingContext) { _threadingContext = threadingContext; _workspaceRegistrationService = workspaceRegistrationService; }