Newer
Older
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
* ------------------------------------------------------------------------------------------ */
// tslint:disable
"use strict";
import * as path from 'path';
import { workspace, ExtensionContext } from 'vscode';
import * as vscode from 'vscode';
import {
LanguageClient,
LanguageClientOptions,
ServerOptions,
Trace,
TransportKind
} from 'vscode-languageclient/node';
let client: LanguageClient;
export function activate(context: ExtensionContext) {
// The server is implemented in node
let serverExe = "D:\\Desktop\\designproject\\modest-toolset\\Binaries\\Release\\win-x64\\Modest.LanguageServer.exe";
// If the extension is launched in debug mode then the debug server options are used
// Otherwise the run options are used
let serverOptions: ServerOptions = {
// run: { command: serverExe, args: ['-lsp', '-d'] },
run: {
command: serverExe,
transport: TransportKind.pipe,
},
// debug: { command: serverExe, args: ['-lsp', '-d'] }
debug: {
command: serverExe,
transport: TransportKind.pipe,
runtime: "",
},
};
// Options to control the language client
let clientOptions: LanguageClientOptions = {
// Register the server for plain text documents
documentSelector: [
{
pattern: "**/*.modest",
},
],
progressOnInitialization: true,
synchronize: {
// Synchronize the setting section 'languageServerExample' to the server
configurationSection: "languageServerExample",
fileEvents: workspace.createFileSystemWatcher("**/*.modest"),
},
};
let disposable = vscode.commands.registerCommand('extension.helloWorld', () => {
// The code you place here will be executed every time your command is executed
// Display a message box to the user
vscode.window.showInformationMessage('Hello World!');
});
context.subscriptions.push(disposable);
// Create the language client and start the client.
client = new LanguageClient(
"ModestExtension",
"Modest Extension",
serverOptions,
clientOptions);
client.registerProposedFeatures();
client.registerProposedFeatures();
client.trace = Trace.Verbose;
disposable = client.start();
// Push the disposable to the context's subscriptions so that the
// client can be deactivated on extension deactivation
context.subscriptions.push(disposable);
export function deactivate(): Thenable<void> | undefined {
if (!client) {
return undefined;
}
return client.stop();
}