@inst/vscode-bin-darwin
Version:
BINARY ONLY - VSCode binary deployment for macOS
86 lines (85 loc) • 3.74 kB
JavaScript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
;
Object.defineProperty(exports, "__esModule", { value: true });
var vscode_html_languageservice_1 = require("vscode-html-languageservice");
var languageModelCache_1 = require("../languageModelCache");
var embeddedSupport_1 = require("./embeddedSupport");
var cssMode_1 = require("./cssMode");
var javascriptMode_1 = require("./javascriptMode");
var htmlMode_1 = require("./htmlMode");
function getLanguageModes(supportedLanguages) {
var htmlLanguageService = vscode_html_languageservice_1.getLanguageService();
var documentRegions = languageModelCache_1.getLanguageModelCache(10, 60, function (document) { return embeddedSupport_1.getDocumentRegions(htmlLanguageService, document); });
var modelCaches = [];
modelCaches.push(documentRegions);
var modes = {};
modes['html'] = htmlMode_1.getHTMLMode(htmlLanguageService);
if (supportedLanguages['css']) {
modes['css'] = cssMode_1.getCSSMode(documentRegions);
}
if (supportedLanguages['javascript']) {
modes['javascript'] = javascriptMode_1.getJavascriptMode(documentRegions);
}
return {
getModeAtPosition: function (document, position) {
var languageId = documentRegions.get(document).getLanguageAtPosition(position);
if (languageId) {
return modes[languageId];
}
return null;
},
getModesInRange: function (document, range) {
return documentRegions.get(document).getLanguageRanges(range).map(function (r) {
return {
start: r.start,
end: r.end,
mode: modes[r.languageId],
attributeValue: r.attributeValue
};
});
},
getAllModesInDocument: function (document) {
var result = [];
for (var _i = 0, _a = documentRegions.get(document).getLanguagesInDocument(); _i < _a.length; _i++) {
var languageId = _a[_i];
var mode = modes[languageId];
if (mode) {
result.push(mode);
}
}
return result;
},
getAllModes: function () {
var result = [];
for (var languageId in modes) {
var mode = modes[languageId];
if (mode) {
result.push(mode);
}
}
return result;
},
getMode: function (languageId) {
return modes[languageId];
},
onDocumentRemoved: function (document) {
modelCaches.forEach(function (mc) { return mc.onDocumentRemoved(document); });
for (var mode in modes) {
modes[mode].onDocumentRemoved(document);
}
},
dispose: function () {
modelCaches.forEach(function (mc) { return mc.dispose(); });
modelCaches = [];
for (var mode in modes) {
modes[mode].dispose();
}
modes = {};
}
};
}
exports.getLanguageModes = getLanguageModes;
//# sourceMappingURL=https://ticino.blob.core.windows.net/sourcemaps/b813d12980308015bcd2b3a2f6efa5c810c33ba5/extensions/html/server/out/modes/languageModes.js.map