diff --git a/src/ServiceHost/Connection/ConnectionService.cs b/src/ServiceHost/Connection/ConnectionService.cs index afbf4ab4..32c6c006 100644 --- a/src/ServiceHost/Connection/ConnectionService.cs +++ b/src/ServiceHost/Connection/ConnectionService.cs @@ -10,6 +10,8 @@ using System.Threading.Tasks; using Microsoft.SqlTools.EditorServices.Utility; using Microsoft.SqlTools.ServiceLayer.Hosting; using Microsoft.SqlTools.ServiceLayer.Hosting.Protocol; +using Microsoft.SqlTools.ServiceLayer.SqlContext; +using Microsoft.SqlTools.ServiceLayer.WorkspaceServices; namespace Microsoft.SqlTools.ServiceLayer.Connection { @@ -144,12 +146,17 @@ namespace Microsoft.SqlTools.ServiceLayer.Connection { ConnectionId = maxConnectionId }; + + } - public void Initialize(ServiceHost serviceHost) + public void InitializeService(ServiceHost serviceHost) { // Register request and event handlers with the Service Host serviceHost.SetRequestHandler(ConnectionRequest.Type, HandleConnectRequest); + + // Register the configuration update handler + WorkspaceService.Instance.RegisterConfigChangeCallback(HandleDidChangeConfigurationNotification); } /// @@ -177,10 +184,28 @@ namespace Microsoft.SqlTools.ServiceLayer.Connection { Logger.Write(LogLevel.Verbose, "HandleConnectRequest"); - // open connection base on request details - ConnectionResult result = ConnectionService.Instance.Connect(connectionDetails); + try + { + // open connection base on request details + ConnectionResult result = ConnectionService.Instance.Connect(connectionDetails); + await requestContext.SendResult(result); + } + catch(Exception ex) + { + await requestContext.SendError(ex.Message); + } + } - await requestContext.SendResult(result); + #endregion + + #region Handlers for Events from Other Services + + public Task HandleDidChangeConfigurationNotification( + SqlToolsSettings newSettings, + SqlToolsSettings oldSettings, + EventContext eventContext) + { + return Task.FromResult(true); } #endregion diff --git a/src/ServiceHost/Program.cs b/src/ServiceHost/Program.cs index a3f9cf8b..dc77f769 100644 --- a/src/ServiceHost/Program.cs +++ b/src/ServiceHost/Program.cs @@ -45,7 +45,7 @@ namespace Microsoft.SqlTools.ServiceLayer WorkspaceService.Instance.InitializeService(serviceHost); AutoCompleteService.Instance.InitializeService(serviceHost); LanguageService.Instance.InitializeService(serviceHost, sqlToolsContext); - ConnectionService.Instance.Initialize(serviceHost); + ConnectionService.Instance.InitializeService(serviceHost); serviceHost.Initialize(); serviceHost.WaitForExit(); diff --git a/test/ServiceHost.Test/LanguageServer/LanguageServiceTests.cs b/test/ServiceHost.Test/LanguageServer/LanguageServiceTests.cs index 8f85869d..bab3fa6e 100644 --- a/test/ServiceHost.Test/LanguageServer/LanguageServiceTests.cs +++ b/test/ServiceHost.Test/LanguageServer/LanguageServiceTests.cs @@ -8,7 +8,7 @@ using Microsoft.SqlTools.ServiceLayer.WorkspaceServices.Contracts; using Microsoft.SqlTools.Test.Utility; using Xunit; -namespace Microsoft.SqlTools.ServiceLayer.Test.LanguageServer +namespace Microsoft.SqlTools.ServiceLayer.Test.LanguageServices { /// /// Tests for the ServiceHost Language Service tests