Index: tools/vscode/uwaterloo.cforall-0.1.0/client/main.js
===================================================================
--- tools/vscode/uwaterloo.cforall-0.1.0/client/main.js	(revision b52abe09e566fb9c0f5bb6ff0da4ce67bdd511bb)
+++ tools/vscode/uwaterloo.cforall-0.1.0/client/main.js	(revision b52abe09e566fb9c0f5bb6ff0da4ce67bdd511bb)
@@ -0,0 +1,55 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+// The module 'vscode' contains the VS Code extensibility API
+// Import the module and reference it with the alias vscode in your code below
+const path = require("path");
+const vscode = require("vscode");
+
+
+const vscode_lc = require('vscode-languageclient');
+
+let client = {}
+
+// this method is called when your extension is activated
+// your extension is activated the very first time the command is executed
+function activate(context) {
+	vscode.window.showInformationMessage('Cforall Extension Starting');
+
+	// The debug options for the server
+	// --inspect=6009: runs the server in Node's Inspector mode so VS Code can attach to the server for debugging
+	let debugOptions = { execArgv: ['--nolazy', '--inspect=6009'] };
+
+	// If the extension is launched in debug mode then the debug server options are used
+	// Otherwise the run options are used
+	let serverOptions = {
+		run: { command: 'cfa-ls', transport: vscode_lc.TransportKind.ipc },
+		debug: {
+			command: 'cfa-ls',
+			transport: vscode_lc.TransportKind.ipc,
+			options: debugOptions
+		}
+	};
+
+	// Options to control the language client
+	let clientOptions = {
+		// Register the server for plain text documents
+		documentSelector: [{ scheme: 'file', language: 'cforall' }]
+	};
+
+	// Create the language client and start the client.
+	client = new vscode_lc.LanguageClient(
+		'CforallServer',
+		'Cforall Language Server',
+		serverOptions,
+		clientOptions
+	);
+
+	// Start the client. This will also launch the server
+	client.start();
+
+}
+exports.activate = activate;
+
+// this method is called when your extension is deactivated
+function deactivate() { }
+exports.deactivate = deactivate;
Index: tools/vscode/uwaterloo.cforall-0.1.0/package.json
===================================================================
--- tools/vscode/uwaterloo.cforall-0.1.0/package.json	(revision 5137f9f924553183ad0d9532c6f3174d98080b2e)
+++ tools/vscode/uwaterloo.cforall-0.1.0/package.json	(revision b52abe09e566fb9c0f5bb6ff0da4ce67bdd511bb)
@@ -15,4 +15,8 @@
 		"Other"
 	],
+	"activationEvents": [
+		"onLanguage:cforall"
+	],
+	"main": "./client/main.js",
 	"contributes": {
 		"languages": [
@@ -40,4 +44,22 @@
 			}
 		]
+	},
+	"configuration": {
+		"type": "object",
+		"title": "Example configuration",
+		"properties": {
+			"languageServerExample.maxNumberOfProblems": {
+				"scope": "resource",
+				"type": "number",
+				"default": 100,
+				"description": "Controls the maximum number of problems produced by the server."
+			}
+		}
+	},
+	"dependencies": {
+		"vscode-languageclient": "^4.1.4"
+	},
+	"devDependencies": {
+		"vscode-languageclient": "^4.1.4"
 	}
 }
Index: tools/vscode/uwaterloo.cforall-0.1.0/server/out/server
===================================================================
--- tools/vscode/uwaterloo.cforall-0.1.0/server/out/server	(revision b52abe09e566fb9c0f5bb6ff0da4ce67bdd511bb)
+++ tools/vscode/uwaterloo.cforall-0.1.0/server/out/server	(revision b52abe09e566fb9c0f5bb6ff0da4ce67bdd511bb)
@@ -0,0 +1,1 @@
+../../../ls
