html.experimental.custom.tags/attributes for Microsoft/vscode#62976

This commit is contained in:
Pine Wu
2018-11-28 16:34:12 -08:00
parent 3725e59112
commit d198091b68
7 changed files with 139 additions and 16 deletions

View File

@@ -8,7 +8,7 @@ import * as fs from 'fs';
import * as nls from 'vscode-nls';
const localize = nls.loadMessageBundle();
import { languages, ExtensionContext, IndentAction, Position, TextDocument, Range, CompletionItem, CompletionItemKind, SnippetString } from 'vscode';
import { languages, ExtensionContext, IndentAction, Position, TextDocument, Range, CompletionItem, CompletionItemKind, SnippetString, workspace } from 'vscode';
import { LanguageClient, LanguageClientOptions, ServerOptions, TransportKind, RequestType, TextDocumentPositionParams } from 'vscode-languageclient';
import { EMPTY_ELEMENTS } from './htmlEmptyTagsShared';
import { activateTagClosing } from './tagClosing';
@@ -49,6 +49,16 @@ export function activate(context: ExtensionContext) {
let documentSelector = ['html', 'handlebars', 'razor'];
let embeddedLanguages = { css: true, javascript: true };
let tagPaths: string[] = workspace.getConfiguration('html').get('experimental.custom.tags', []);
let attributePaths: string[] = workspace.getConfiguration('html').get('experimental.custom.attributes', []);
if (tagPaths) {
const workspaceRoot = workspace.workspaceFolders![0].uri.fsPath;
tagPaths = tagPaths.map(d => {
return path.resolve(workspaceRoot, d);
});
}
// Options to control the language client
let clientOptions: LanguageClientOptions = {
documentSelector,
@@ -56,7 +66,9 @@ export function activate(context: ExtensionContext) {
configurationSection: ['html', 'css', 'javascript'], // the settings to synchronize
},
initializationOptions: {
embeddedLanguages
embeddedLanguages,
tagPaths,
attributePaths
}
};