add client/server browser parts

This commit is contained in:
Martin Aeschlimann
2020-05-27 22:35:37 +02:00
parent 90861d4924
commit 3ed67bc863
10 changed files with 242 additions and 62 deletions

View File

@@ -8,6 +8,7 @@
"node": "*"
},
"main": "./out/node/cssServerMain",
"browser": "./dist/browser/cssServerMain",
"dependencies": {
"vscode-css-languageservice": "4.3.0-next.1",
"vscode-languageserver": "^6.1.1",

View File

@@ -0,0 +1,26 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { ProtocolConnection, createProtocolConnection, Logger, createConnection, InitializeParams, WatchDog } from 'vscode-languageserver';
import { startServer } from '../cssServer';
import { BrowserMessageReader, BrowserMessageWriter } from 'vscode-jsonrpc/lib/browser/main';
declare let self: any;
const messageReader = new BrowserMessageReader(self);
const messageWriter = new BrowserMessageWriter(self);
const watchDog: WatchDog = {
shutdownReceived: false,
initialize(_params: InitializeParams): void { },
exit(_code: number): void { }
};
const connectionFactory = (logger: Logger): ProtocolConnection => {
return createProtocolConnection(messageReader, messageWriter, logger);
};
const connection = createConnection(connectionFactory, watchDog);
startServer(connection, {});

View File

@@ -5,7 +5,7 @@
import {
Connection, TextDocuments, InitializeParams, InitializeResult, ServerCapabilities, ConfigurationRequest, WorkspaceFolder, TextDocumentSyncKind, NotificationType
} from 'vscode-languageserver';
} from 'vscode-languageserver/lib/common/api';
import { URI } from 'vscode-uri';
import { getCSSLanguageService, getSCSSLanguageService, getLESSLanguageService, LanguageSettings, LanguageService, Stylesheet, TextDocument, Position } from 'vscode-css-languageservice';
import { getLanguageModelCache } from './languageModelCache';

View File

@@ -6,7 +6,7 @@ import 'mocha';
import * as assert from 'assert';
import * as path from 'path';
import { URI } from 'vscode-uri';
import { TextDocument, CompletionList } from 'vscode-languageserver-types';
import { TextDocument, CompletionList, TextEdit } from 'vscode-languageserver-types';
import { WorkspaceFolder } from 'vscode-languageserver-protocol';
import { getCSSLanguageService, LanguageServiceOptions, getSCSSLanguageService } from 'vscode-css-languageservice';
import { getNodeFSRequestService } from '../node/nodeFs';
@@ -26,7 +26,7 @@ suite('Completions', () => {
assert.equal(matches.length, 1, `${expected.label} should only existing once: Actual: ${completions.items.map(c => c.label).join(', ')}`);
let match = matches[0];
if (expected.resultText && match.textEdit) {
if (expected.resultText && TextEdit.is(match.textEdit)) {
assert.equal(TextDocument.applyEdits(document, [match.textEdit]), expected.resultText);
}
};