Skip to content

Commit d40a1e2

Browse files
committed
[json] adopt language-client with colorProvider support
1 parent 8fee701 commit d40a1e2

4 files changed

Lines changed: 20 additions & 55 deletions

File tree

extensions/json/client/src/jsonMain.ts

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,9 @@ import * as path from 'path';
88
import * as nls from 'vscode-nls';
99
const localize = nls.loadMessageBundle();
1010

11-
import { workspace, languages, ExtensionContext, extensions, Uri, TextDocument, ColorInformation, Color, ColorPresentation, LanguageConfiguration } from 'vscode';
11+
import { workspace, languages, ExtensionContext, extensions, Uri, LanguageConfiguration } from 'vscode';
1212
import { LanguageClient, LanguageClientOptions, RequestType, ServerOptions, TransportKind, NotificationType, DidChangeConfigurationNotification } from 'vscode-languageclient';
1313
import TelemetryReporter from 'vscode-extension-telemetry';
14-
import { ConfigurationFeature } from 'vscode-languageclient/lib/configuration.proposed';
15-
import { DocumentColorRequest, DocumentColorParams, ColorPresentationParams, ColorPresentationRequest } from 'vscode-languageserver-protocol/lib/protocol.colorProvider.proposed';
1614

1715
import { hash } from './utils/hash';
1816

@@ -96,7 +94,7 @@ export function activate(context: ExtensionContext) {
9694

9795
// Create the language client and start the client.
9896
let client = new LanguageClient('json', localize('jsonserver.name', 'JSON Language Server'), serverOptions, clientOptions);
99-
client.registerFeature(new ConfigurationFeature(client));
97+
client.registerProposedFeatures();
10098

10199
let disposable = client.start();
102100
toDispose.push(disposable);
@@ -126,37 +124,6 @@ export function activate(context: ExtensionContext) {
126124
toDispose.push(workspace.onDidCloseTextDocument(d => handleContentChange(d.uri)));
127125

128126
client.sendNotification(SchemaAssociationNotification.type, getSchemaAssociation(context));
129-
130-
// register color provider
131-
toDispose.push(languages.registerColorProvider(documentSelector, {
132-
provideDocumentColors(document: TextDocument): Thenable<ColorInformation[]> {
133-
let params: DocumentColorParams = {
134-
textDocument: client.code2ProtocolConverter.asTextDocumentIdentifier(document)
135-
};
136-
return client.sendRequest(DocumentColorRequest.type, params).then(symbols => {
137-
return symbols.map(symbol => {
138-
let range = client.protocol2CodeConverter.asRange(symbol.range);
139-
let color = new Color(symbol.color.red, symbol.color.green, symbol.color.blue, symbol.color.alpha);
140-
return new ColorInformation(range, color);
141-
});
142-
});
143-
},
144-
provideColorPresentations(color: Color, context): Thenable<ColorPresentation[]> {
145-
let params: ColorPresentationParams = {
146-
textDocument: client.code2ProtocolConverter.asTextDocumentIdentifier(context.document),
147-
color: color,
148-
range: client.code2ProtocolConverter.asRange(context.range)
149-
};
150-
return client.sendRequest(ColorPresentationRequest.type, params).then(presentations => {
151-
return presentations.map(p => {
152-
let presentation = new ColorPresentation(p.label);
153-
presentation.textEdit = p.textEdit && client.protocol2CodeConverter.asTextEdit(p.textEdit);
154-
presentation.additionalTextEdits = p.additionalTextEdits && client.protocol2CodeConverter.asTextEdits(p.additionalTextEdits);
155-
return presentation;
156-
});
157-
});
158-
}
159-
}));
160127
});
161128

162129
let languageConfiguration: LanguageConfiguration = {
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
{
22
"compilerOptions": {
3-
"target": "es5",
3+
"target": "es6",
44
"module": "commonjs",
55
"outDir": "./out",
66
"noUnusedLocals": true,
7-
"lib": [
8-
"es5", "es2015.promise"
9-
]
7+
"lib": [ "es2016" ]
108
}
119
}

extensions/json/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@
163163
},
164164
"dependencies": {
165165
"vscode-extension-telemetry": "0.0.11",
166-
"vscode-languageclient": "^3.5.0",
166+
"vscode-languageclient": "^4.0.0-next.7",
167167
"vscode-nls": "^3.2.1"
168168
},
169169
"devDependencies": {

extensions/json/yarn.lock

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,26 +34,26 @@ vscode-extension-telemetry@0.0.11:
3434
dependencies:
3535
applicationinsights "1.0.1"
3636

37-
vscode-jsonrpc@^3.5.0:
38-
version "3.5.0"
39-
resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.5.0.tgz#87239d9e166b2d7352245b8a813597804c1d63aa"
37+
vscode-jsonrpc@^3.6.0-next.1:
38+
version "3.6.0-next.1"
39+
resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.6.0-next.1.tgz#3cb463dffe5842d6aec16718ca9252708cd6aabe"
4040

41-
vscode-languageclient@^3.5.0:
42-
version "3.5.0"
43-
resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-3.5.0.tgz#36d02cc186a8365a4467719a290fb200a9ae490a"
41+
vscode-languageclient@^4.0.0-next.7:
42+
version "4.0.0-next.7"
43+
resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-4.0.0-next.7.tgz#d4d22937a46ad6c0884a678158c4d4a2269a747e"
4444
dependencies:
45-
vscode-languageserver-protocol "^3.5.0"
45+
vscode-languageserver-protocol "^3.6.0-next.4"
4646

47-
vscode-languageserver-protocol@^3.5.0:
48-
version "3.5.0"
49-
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.5.0.tgz#067c5cbe27709795398d119692c97ebba1452209"
47+
vscode-languageserver-protocol@^3.6.0-next.4:
48+
version "3.6.0-next.4"
49+
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.6.0-next.4.tgz#5b9940e4d6afafd5b63f9731dbd3a9bcc65b3719"
5050
dependencies:
51-
vscode-jsonrpc "^3.5.0"
52-
vscode-languageserver-types "^3.5.0"
51+
vscode-jsonrpc "^3.6.0-next.1"
52+
vscode-languageserver-types "^3.6.0-next.1"
5353

54-
vscode-languageserver-types@^3.5.0:
55-
version "3.5.0"
56-
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.5.0.tgz#e48d79962f0b8e02de955e3f524908e2b19c0374"
54+
vscode-languageserver-types@^3.6.0-next.1:
55+
version "3.6.0-next.1"
56+
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.6.0-next.1.tgz#98e488d3f87b666b4ee1a3d89f0023e246d358f3"
5757

5858
vscode-nls@^3.2.1:
5959
version "3.2.1"

0 commit comments

Comments
 (0)