LSP-client-example

Форк
0
47 строк · 1.5 Кб
1
/* --------------------------------------------------------------------------------------------
2
 * Copyright (c) Microsoft Corporation. All rights reserved.
3
 * Licensed under the MIT License. See License.txt in the project root for license information.
4
 * ------------------------------------------------------------------------------------------ */
5

6
import * as vscode from 'vscode';
7
import * as path from 'path';
8

9
export let doc: vscode.TextDocument;
10
export let editor: vscode.TextEditor;
11
export let documentEol: string;
12
export let platformEol: string;
13

14
/**
15
 * Activates the vscode.lsp-sample extension
16
 */
17
export async function activate(docUri: vscode.Uri) {
18
	// The extensionId is `publisher.name` from package.json
19
	const ext = vscode.extensions.getExtension('vscode-samples.lsp-sample')!;
20
	await ext.activate();
21
	try {
22
		doc = await vscode.workspace.openTextDocument(docUri);
23
		editor = await vscode.window.showTextDocument(doc);
24
		await sleep(2000); // Wait for server activation
25
	} catch (e) {
26
		console.error(e);
27
	}
28
}
29

30
async function sleep(ms: number) {
31
	return new Promise(resolve => setTimeout(resolve, ms));
32
}
33

34
export const getDocPath = (p: string) => {
35
	return path.resolve(__dirname, '../../testFixture', p);
36
};
37
export const getDocUri = (p: string) => {
38
	return vscode.Uri.file(getDocPath(p));
39
};
40

41
export async function setTestContent(content: string): Promise<boolean> {
42
	const all = new vscode.Range(
43
		doc.positionAt(0),
44
		doc.positionAt(doc.getText().length)
45
	);
46
	return editor.edit(eb => eb.replace(all, content));
47
}
48

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.