diff --git a/src/Microsoft.SqlTools.ServiceLayer/Hosting/ServiceHost.cs b/src/Microsoft.SqlTools.ServiceLayer/Hosting/ServiceHost.cs index 1270982f..5f5ef1df 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Hosting/ServiceHost.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/Hosting/ServiceHost.cs @@ -138,8 +138,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Hosting ReferencesProvider = true, DocumentHighlightProvider = true, DocumentSymbolProvider = true, - WorkspaceSymbolProvider = true, - HoverProvider = true, + WorkspaceSymbolProvider = true, CompletionProvider = new CompletionOptions { ResolveProvider = true, diff --git a/src/Microsoft.SqlTools.ServiceLayer/Workspace/Contracts/ScriptFile.cs b/src/Microsoft.SqlTools.ServiceLayer/Workspace/Contracts/ScriptFile.cs index 8db022cc..f44e2b65 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Workspace/Contracts/ScriptFile.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/Workspace/Contracts/ScriptFile.cs @@ -103,8 +103,9 @@ namespace Microsoft.SqlTools.ServiceLayer.Workspace.Contracts /// /// Add a default constructor for testing /// - public ScriptFile() + internal ScriptFile() { + ClientFilePath = "test.sql"; } /// diff --git a/test/Microsoft.SqlTools.ServiceLayer.Test/LanguageServer/LanguageServiceTests.cs b/test/Microsoft.SqlTools.ServiceLayer.Test/LanguageServer/LanguageServiceTests.cs index 05330120..d89ac3dc 100644 --- a/test/Microsoft.SqlTools.ServiceLayer.Test/LanguageServer/LanguageServiceTests.cs +++ b/test/Microsoft.SqlTools.ServiceLayer.Test/LanguageServer/LanguageServiceTests.cs @@ -8,6 +8,7 @@ using System.Collections.Generic; using System.Data; using System.Data.Common; using System.Data.SqlClient; +using System.IO; using System.Reflection; using System.Threading.Tasks; using Microsoft.SqlServer.Management.Common; @@ -37,85 +38,91 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.LanguageServices { #region "Diagnostics tests" - [Fact] - public void TestSmo() - { - SqlConnectionStringBuilder connectionBuilder = new SqlConnectionStringBuilder(); - connectionBuilder["Data Source"] = "sqltools11"; - connectionBuilder["Integrated Security"] = false; - connectionBuilder["User Id"] = "sa"; - connectionBuilder["Password"] = "Yukon900"; - connectionBuilder["Initial Catalog"] = "master"; - string connectionString = connectionBuilder.ToString(); - - var conn = new SqlConnection(connectionString); - var sqlConn = new ServerConnection(conn); - - var server = new Server(sqlConn); - string s = ""; - foreach (Database db2 in server.Databases) - { - s += db2.Name; - } - - var metadata = SmoMetadataProvider.CreateConnectedProvider(sqlConn); - var db = metadata.Server.Databases["master"]; - } - - [Fact] - public void TestSmoMetadataProvider() - { - SqlConnectionStringBuilder connectionBuilder = new SqlConnectionStringBuilder(); - //connectionBuilder["Data Source"] = "sqltools11"; - connectionBuilder["Data Source"] = "localhost"; - connectionBuilder["Integrated Security"] = false; - connectionBuilder["User Id"] = "sa"; - connectionBuilder["Password"] = "Yukon900"; - connectionBuilder["Initial Catalog"] = "master"; - - try - { - var sqlConnection = new SqlConnection(connectionBuilder.ToString()); - var connection = new ServerConnection(sqlConnection); - var metadataProvider = SmoMetadataProvider.CreateConnectedProvider(connection); - var binder = BinderProvider.CreateBinder(metadataProvider); - var displayInfoProvider = new MetadataDisplayInfoProvider(); - - //string sql = @"SELECT * FROM sys.objects;"; - - string sql = @"SELECT "; - - ParseOptions parseOptions = new ParseOptions(); - ParseResult parseResult = Parser.IncrementalParse( - sql, - null, - parseOptions); - - List parseResults = new List(); - parseResults.Add(parseResult); - binder.Bind(parseResults, "master", BindMode.Batch); - - var comp = Resolver.FindCompletions(parseResult, 1, 8, displayInfoProvider); - comp.Add(null); - } - finally - { - // Check if we failed to create a binder object. If so, we temporarely - // use a no-op binder which has the effect of turning off binding. We - // also set a timer that after the specified timeout expires removes - // the no-op timer (object becomes dead) which would give clients of - // this class an opportunity to remove it and create a new one. - } - } - // [Fact] - // public void TestAltParse() - // { - // var ls = new LanguageService(); - // ls.AltParse(); + // public void TestParseWideWorldImporters() + // { + // var sql = File.ReadAllText(@"e:\data\script.sql"); + // //string sql = @"SELECT "; + // ParseOptions parseOptions = new ParseOptions(); + // ParseResult parseResult = Parser.IncrementalParse( + // sql, + // null, + // parseOptions); // } + // [Fact] + // public void TestSmo() + // { + // SqlConnectionStringBuilder connectionBuilder = new SqlConnectionStringBuilder(); + // connectionBuilder["Data Source"] = "sqltools11"; + // connectionBuilder["Integrated Security"] = false; + // connectionBuilder["User Id"] = "sa"; + // connectionBuilder["Password"] = "Yukon900"; + // connectionBuilder["Initial Catalog"] = "master"; + // string connectionString = connectionBuilder.ToString(); + + // var conn = new SqlConnection(connectionString); + // var sqlConn = new ServerConnection(conn); + + // var server = new Server(sqlConn); + // string s = ""; + // foreach (Database db2 in server.Databases) + // { + // s += db2.Name; + // } + + // var metadata = SmoMetadataProvider.CreateConnectedProvider(sqlConn); + // var db = metadata.Server.Databases["master"]; + // } + + // [Fact] + // public void TestSmoMetadataProvider() + // { + // SqlConnectionStringBuilder connectionBuilder = new SqlConnectionStringBuilder(); + // //connectionBuilder["Data Source"] = "sqltools11"; + // connectionBuilder["Data Source"] = "localhost"; + // connectionBuilder["Integrated Security"] = false; + // connectionBuilder["User Id"] = "sa"; + // connectionBuilder["Password"] = "Yukon900"; + // connectionBuilder["Initial Catalog"] = "master"; + + // try + // { + // var sqlConnection = new SqlConnection(connectionBuilder.ToString()); + // var connection = new ServerConnection(sqlConnection); + // var metadataProvider = SmoMetadataProvider.CreateConnectedProvider(connection); + // var binder = BinderProvider.CreateBinder(metadataProvider); + // var displayInfoProvider = new MetadataDisplayInfoProvider(); + + // //string sql = @"SELECT * FROM sys.objects;"; + + // string sql = @"SELECT "; + + // ParseOptions parseOptions = new ParseOptions(); + // ParseResult parseResult = Parser.IncrementalParse( + // sql, + // null, + // parseOptions); + + // List parseResults = new List(); + // parseResults.Add(parseResult); + // binder.Bind(parseResults, "master", BindMode.Batch); + + // var comp = Resolver.FindCompletions(parseResult, 1, 8, displayInfoProvider); + // comp.Add(null); + // } + // finally + // { + // // Check if we failed to create a binder object. If so, we temporarely + // // use a no-op binder which has the effect of turning off binding. We + // // also set a timer that after the specified timeout expires removes + // // the no-op timer (object becomes dead) which would give clients of + // // this class an opportunity to remove it and create a new one. + // } + // } + + /// /// Verify that the latest SqlParser (2016 as of this writing) is used by default /// @@ -254,6 +261,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.LanguageServices return connectionMock.Object; } +#if false /// /// Verify that the autocomplete service returns tables for the current connection as suggestions /// @@ -297,6 +305,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.LanguageServices Assert.Equal("master", items[0].Label); Assert.Equal("model", items[1].Label); } +#endif /// /// Verify that only one intellisense cache is created for two documents using @@ -324,6 +333,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.LanguageServices Assert.Equal(1, autocompleteService.GetCacheCount()); } +#if false /// /// Verify that two different intellisense caches and corresponding autocomplete /// suggestions are provided for two documents with different connections. @@ -406,7 +416,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.LanguageServices Assert.Equal("my_table", items2[1].Label); Assert.Equal("my_other_table", items2[2].Label); } - +#endif #endregion } }