Skip to content

Commit 065d950

Browse files
Ecmel ErcanEcmel Ercan
authored andcommitted
Begin language server implementation
1 parent b599b7f commit 065d950

File tree

3 files changed

+44
-0
lines changed

3 files changed

+44
-0
lines changed

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@
4444
"vscode": "^0.11.0"
4545
},
4646
"dependencies": {
47+
"vscode-languageclient": "2.3.0",
48+
"vscode-languageserver": "2.2.1",
4749
"vscode-languageserver-types": "1.0.1",
4850
"vscode-css-languageservice": "1.0.4"
4951
}

src/extension.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// (c) 2016 Ecmel Ercan
44

55
import * as vsc from 'vscode';
6+
import * as lc from 'vscode-languageclient';
67
import * as lst from 'vscode-languageserver-types';
78
import * as css from 'vscode-css-languageservice';
89
import * as fs from 'fs';
@@ -226,6 +227,24 @@ export function activate(context: vsc.ExtensionContext) {
226227
let classServer = new ClassServer();
227228

228229
context.subscriptions.push(vsc.languages.registerCompletionItemProvider('html', classServer));
230+
231+
232+
// LANGUAGE CLIENT
233+
234+
let serverModule = context.asAbsolutePath(path.join('out', 'src', 'server.js'));
235+
let debugOptions = { execArgv: ["--nolazy", "--debug=6004"] };
236+
237+
let serverOptions: lc.ServerOptions = {
238+
run: { module: serverModule, transport: lc.TransportKind.ipc },
239+
debug: { module: serverModule, transport: lc.TransportKind.ipc, options: debugOptions }
240+
}
241+
242+
let clientOptions: lc.LanguageClientOptions = {
243+
documentSelector: ['html']
244+
}
245+
246+
let client = new lc.LanguageClient('HTML CSS Support', serverOptions, clientOptions).start();
247+
context.subscriptions.push(client);
229248
}
230249

231250
export function deactivate() {

src/server.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import * as ls from 'vscode-languageserver';
2+
import * as lst from 'vscode-languageserver-types';
3+
import * as css from 'vscode-css-languageservice';
4+
5+
let conn = ls.createConnection(new ls.IPCMessageReader(process), new ls.IPCMessageWriter(process));
6+
let docs = new ls.TextDocuments();
7+
8+
docs.listen(conn);
9+
10+
conn.onInitialize((params): ls.InitializeResult => {
11+
return {
12+
capabilities: {
13+
textDocumentSync: docs.syncKind
14+
}
15+
}
16+
});
17+
18+
docs.onDidChangeContent((change) => {
19+
console.log("Changed: " + change.document.uri);
20+
});
21+
22+
23+
conn.listen();

0 commit comments

Comments
 (0)