Files
vscode/extensions/vscode-api-tests/src/singlefolder-tests/languagedetection.test.ts
2021-09-03 17:59:05 -07:00

66 lines
1.8 KiB
TypeScript

/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as assert from 'assert';
import * as vscode from 'vscode';
import { asPromise, assertNoRpc, closeAllEditors } from '../utils';
suite('vscode - automatic language detection', () => {
teardown(async function () {
assertNoRpc();
await closeAllEditors();
});
test('test automatic language detection works', async () => {
const doc = await vscode.workspace.openTextDocument();
const editor = await vscode.window.showTextDocument(doc);
assert.strictEqual(editor.document.languageId, 'plaintext');
const settingResult = vscode.workspace.getConfiguration().get<boolean>('workbench.editor.languageDetection');
assert.ok(settingResult);
const result = await editor.edit(editBuilder => {
editBuilder.insert(new vscode.Position(0, 0), `{
"extends": "./tsconfig.base.json",
"compilerOptions": {
"removeComments": false,
"preserveConstEnums": true,
"sourceMap": false,
"outDir": "../out/vs",
"target": "es2020",
"types": [
"keytar",
"mocha",
"semver",
"sinon",
"winreg",
"trusted-types",
"wicg-file-system-access"
],
"plugins": [
{
"name": "tsec",
"exemptionConfig": "./tsec.exemptions.json"
}
]
},
"include": [
"./typings",
"./vs"
]
}`);
});
assert.ok(result);
// Changing the language triggers a file to be closed and opened again so wait for that event to happen.
const newDoc = await asPromise(vscode.workspace.onDidOpenTextDocument, 5000);
assert.strictEqual(newDoc.languageId, 'json');
});
});