提交 c72c6cc3 编写于 作者: M Martin Aeschlimann

[json] complete colorProvider adoption

上级 07e2faac
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
import * as path from 'path'; import * as path from 'path';
import { workspace, languages, ExtensionContext, extensions, Uri, Range, TextDocument, ColorRange, Color } from 'vscode'; import { workspace, languages, ExtensionContext, extensions, Uri, TextDocument, ColorRange, Color } from 'vscode';
import { LanguageClient, LanguageClientOptions, RequestType, ServerOptions, TransportKind, NotificationType, DidChangeConfigurationNotification } from 'vscode-languageclient'; import { LanguageClient, LanguageClientOptions, RequestType, ServerOptions, TransportKind, NotificationType, DidChangeConfigurationNotification } from 'vscode-languageclient';
import TelemetryReporter from 'vscode-extension-telemetry'; import TelemetryReporter from 'vscode-extension-telemetry';
import { ConfigurationFeature } from 'vscode-languageclient/lib/proposed'; import { ConfigurationFeature } from 'vscode-languageclient/lib/proposed';
...@@ -21,10 +21,6 @@ namespace VSCodeContentRequest { ...@@ -21,10 +21,6 @@ namespace VSCodeContentRequest {
export const type: RequestType<string, string, any, any> = new RequestType('vscode/content'); export const type: RequestType<string, string, any, any> = new RequestType('vscode/content');
} }
namespace ColorSymbolRequest {
export const type: RequestType<string, Range[], any, any> = new RequestType('json/colorSymbols');
}
export interface ISchemaAssociations { export interface ISchemaAssociations {
[pattern: string]: string[]; [pattern: string]: string[];
} }
...@@ -83,10 +79,12 @@ export function activate(context: ExtensionContext) { ...@@ -83,10 +79,12 @@ export function activate(context: ExtensionContext) {
debug: { module: serverModule, transport: TransportKind.ipc, options: debugOptions } debug: { module: serverModule, transport: TransportKind.ipc, options: debugOptions }
}; };
let documentSelector = ['json'];
// Options to control the language client // Options to control the language client
let clientOptions: LanguageClientOptions = { let clientOptions: LanguageClientOptions = {
// Register the server for json documents // Register the server for json documents
documentSelector: ['json'], documentSelector,
synchronize: { synchronize: {
// Synchronize the setting section 'json' to the server // Synchronize the setting section 'json' to the server
configurationSection: ['json', 'http'], configurationSection: ['json', 'http'],
...@@ -123,7 +121,8 @@ export function activate(context: ExtensionContext) { ...@@ -123,7 +121,8 @@ export function activate(context: ExtensionContext) {
client.sendNotification(SchemaAssociationNotification.type, getSchemaAssociation(context)); client.sendNotification(SchemaAssociationNotification.type, getSchemaAssociation(context));
context.subscriptions.push(languages.registerColorProvider('json', { // register color provider
context.subscriptions.push(languages.registerColorProvider(documentSelector, {
provideDocumentColors(document: TextDocument): Thenable<ColorRange[]> { provideDocumentColors(document: TextDocument): Thenable<ColorRange[]> {
let params = client.code2ProtocolConverter.asDocumentSymbolParams(document); let params = client.code2ProtocolConverter.asDocumentSymbolParams(document);
return client.sendRequest(DocumentColorRequest.type, params).then(symbols => { return client.sendRequest(DocumentColorRequest.type, params).then(symbols => {
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
}, },
"vscode-languageserver-protocol": { "vscode-languageserver-protocol": {
"version": "3.1.1", "version": "3.1.1",
"from": "vscode-languageserver-protocol@>=3.1.0 <4.0.0", "from": "vscode-languageserver-protocol@>=3.1.1 <4.0.0",
"resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.1.1.tgz" "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.1.1.tgz"
}, },
"vscode-languageserver-types": { "vscode-languageserver-types": {
......
...@@ -134,6 +134,7 @@ ...@@ -134,6 +134,7 @@
"dependencies": { "dependencies": {
"vscode-extension-telemetry": "0.0.8", "vscode-extension-telemetry": "0.0.8",
"vscode-languageclient": "3.4.0-next.17", "vscode-languageclient": "3.4.0-next.17",
"vscode-languageserver-protocol": "^3.1.1",
"vscode-nls": "2.0.2" "vscode-nls": "2.0.2"
}, },
"devDependencies": { "devDependencies": {
......
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
}, },
"vscode-languageserver-protocol": { "vscode-languageserver-protocol": {
"version": "3.1.1", "version": "3.1.1",
"from": "vscode-languageserver-protocol@>=3.1.0 <4.0.0", "from": "vscode-languageserver-protocol@>=3.1.1 <4.0.0",
"resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.1.1.tgz" "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.1.1.tgz"
}, },
"vscode-languageserver-types": { "vscode-languageserver-types": {
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
"request-light": "^0.2.1", "request-light": "^0.2.1",
"vscode-json-languageservice": "^2.0.15", "vscode-json-languageservice": "^2.0.15",
"vscode-languageserver": "3.4.0-next.6", "vscode-languageserver": "3.4.0-next.6",
"vscode-languageserver-protocol": "^3.1.1",
"vscode-nls": "^2.0.2" "vscode-nls": "^2.0.2"
}, },
"devDependencies": { "devDependencies": {
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
import { import {
createConnection, IConnection, createConnection, IConnection,
TextDocuments, TextDocument, InitializeParams, InitializeResult, NotificationType, RequestType, TextDocuments, TextDocument, InitializeParams, InitializeResult, NotificationType, RequestType,
DocumentRangeFormattingRequest, Disposable, Range, ServerCapabilities DocumentRangeFormattingRequest, Disposable, ServerCapabilities
} from 'vscode-languageserver'; } from 'vscode-languageserver';
import { DocumentColorRequest, ServerCapabilities as CPServerCapabilities } from 'vscode-languageserver-protocol/lib/protocol.colorProvider.proposed'; import { DocumentColorRequest, ServerCapabilities as CPServerCapabilities } from 'vscode-languageserver-protocol/lib/protocol.colorProvider.proposed';
...@@ -36,10 +36,6 @@ namespace VSCodeContentRequest { ...@@ -36,10 +36,6 @@ namespace VSCodeContentRequest {
export const type: RequestType<string, string, any, any> = new RequestType('vscode/content'); export const type: RequestType<string, string, any, any> = new RequestType('vscode/content');
} }
namespace ColorSymbolRequest {
export const type: RequestType<string, Range[], any, any> = new RequestType('json/colorSymbols');
}
// Create a connection for the server // Create a connection for the server
let connection: IConnection = createConnection(); let connection: IConnection = createConnection();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册