diff --git a/src/constants/constants.ts b/src/constants/constants.ts index 7a7948869..837e10b5a 100644 --- a/src/constants/constants.ts +++ b/src/constants/constants.ts @@ -130,4 +130,6 @@ export const sqlToolsServiceConfigKey = 'service'; export const v1SqlToolsServiceConfigKey = 'v1Service'; export const scriptSelectText = 'SELECT TOP (1000) * FROM '; export const tenantDisplayName = 'Microsoft'; -export const firewallErrorMessage = 'To enable access, use the Windows Azure Management Portal or run sp_set_firewall_rule on the master database to create a firewall rule for this IP address or address range.'; \ No newline at end of file +export const firewallErrorMessage = 'To enable access, use the Windows Azure Management Portal or run sp_set_firewall_rule on the master database to create a firewall rule for this IP address or address range.'; +export const windowsResourceClientPath = 'SqlToolsResourceProviderService.exe'; +export const unixResourceClientPath = 'SqlToolsResourceProviderService'; \ No newline at end of file diff --git a/src/languageservice/serviceclient.ts b/src/languageservice/serviceclient.ts index 70d090a18..f63330a75 100644 --- a/src/languageservice/serviceclient.ts +++ b/src/languageservice/serviceclient.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. * ------------------------------------------------------------------------------------------ */ 'use strict'; - import { ExtensionContext, workspace, window, OutputChannel, languages } from 'vscode'; import { LanguageClient, LanguageClientOptions, ServerOptions, @@ -190,11 +189,11 @@ export default class SqlToolsServiceClient { _channel.show(); } let installedServerPath = await this._server.downloadServerFiles(platformInfo.runtimeId); - this.initializeLanguageClient(installedServerPath, context); + this.initializeLanguageClient(installedServerPath, context, platformInfo.isWindows()); await this._client.onReady(); resolve(new ServerInitializationResult(true, true, installedServerPath)); } else { - this.initializeLanguageClient(serverPath, context); + this.initializeLanguageClient(serverPath, context, platformInfo.isWindows()); await this._client.onReady(); resolve(new ServerInitializationResult(false, true, serverPath)); } @@ -256,7 +255,7 @@ export default class SqlToolsServiceClient { }); } - private initializeLanguageClient(serverPath: string, context: ExtensionContext): void { + private initializeLanguageClient(serverPath: string, context: ExtensionContext, isWindows: boolean): void { if (serverPath === undefined) { Utils.logDebug(Constants.invalidServiceFilePath); throw new Error(Constants.invalidServiceFilePath); @@ -265,7 +264,8 @@ export default class SqlToolsServiceClient { self.initializeLanguageConfiguration(); let serverOptions: ServerOptions = this.createServerOptions(serverPath); this.client = this.createLanguageClient(serverOptions); - let resourcePath = path.join(path.dirname(serverPath), 'SqlToolsResourceProviderService.exe'); + let executablePath = isWindows ? Constants.windowsResourceClientPath : Constants.unixResourceClientPath; + let resourcePath = path.join(path.dirname(serverPath), executablePath); this._resourceClient = this.createResourceClient(resourcePath); if (context !== undefined) {