blob: a80f9e0beae3917e493a21ecfc1172fa5fb5b233 [file] [log] [blame]
(function (factory) {
if (typeof module === "object" && typeof module.exports === "object") {
var v = factory(require, exports);
if (v !== undefined) module.exports = v;
}
else if (typeof define === "function" && define.amd) {
define(["require", "exports", "./parser/cssParser", "./services/cssCompletion", "./services/cssHover", "./services/cssNavigation", "./services/cssCodeActions", "./services/cssValidation", "./parser/scssParser", "./services/scssCompletion", "./parser/lessParser", "./services/lessCompletion", "./services/cssFolding", "./languageFacts/dataManager", "./languageFacts/dataProvider", "./services/cssSelectionRange", "./services/scssNavigation", "./data/webCustomData", "./cssLanguageTypes"], factory);
}
})(function (require, exports) {
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
var cssParser_1 = require("./parser/cssParser");
var cssCompletion_1 = require("./services/cssCompletion");
var cssHover_1 = require("./services/cssHover");
var cssNavigation_1 = require("./services/cssNavigation");
var cssCodeActions_1 = require("./services/cssCodeActions");
var cssValidation_1 = require("./services/cssValidation");
var scssParser_1 = require("./parser/scssParser");
var scssCompletion_1 = require("./services/scssCompletion");
var lessParser_1 = require("./parser/lessParser");
var lessCompletion_1 = require("./services/lessCompletion");
var cssFolding_1 = require("./services/cssFolding");
var dataManager_1 = require("./languageFacts/dataManager");
var dataProvider_1 = require("./languageFacts/dataProvider");
var cssSelectionRange_1 = require("./services/cssSelectionRange");
var scssNavigation_1 = require("./services/scssNavigation");
var webCustomData_1 = require("./data/webCustomData");
__export(require("./cssLanguageTypes"));
function getDefaultCSSDataProvider() {
return newCSSDataProvider(webCustomData_1.cssData);
}
exports.getDefaultCSSDataProvider = getDefaultCSSDataProvider;
function newCSSDataProvider(data) {
return new dataProvider_1.CSSDataProvider(data);
}
exports.newCSSDataProvider = newCSSDataProvider;
function createFacade(parser, completion, hover, navigation, codeActions, validation, cssDataManager) {
return {
configure: function (settings) {
validation.configure(settings);
completion.configure(settings);
},
setDataProviders: cssDataManager.setDataProviders.bind(cssDataManager),
doValidation: validation.doValidation.bind(validation),
parseStylesheet: parser.parseStylesheet.bind(parser),
doComplete: completion.doComplete.bind(completion),
doComplete2: completion.doComplete2.bind(completion),
setCompletionParticipants: completion.setCompletionParticipants.bind(completion),
doHover: hover.doHover.bind(hover),
findDefinition: navigation.findDefinition.bind(navigation),
findReferences: navigation.findReferences.bind(navigation),
findDocumentHighlights: navigation.findDocumentHighlights.bind(navigation),
findDocumentLinks: navigation.findDocumentLinks.bind(navigation),
findDocumentLinks2: navigation.findDocumentLinks2.bind(navigation),
findDocumentSymbols: navigation.findDocumentSymbols.bind(navigation),
doCodeActions: codeActions.doCodeActions.bind(codeActions),
doCodeActions2: codeActions.doCodeActions2.bind(codeActions),
findColorSymbols: function (d, s) { return navigation.findDocumentColors(d, s).map(function (s) { return s.range; }); },
findDocumentColors: navigation.findDocumentColors.bind(navigation),
getColorPresentations: navigation.getColorPresentations.bind(navigation),
doRename: navigation.doRename.bind(navigation),
getFoldingRanges: cssFolding_1.getFoldingRanges,
getSelectionRanges: cssSelectionRange_1.getSelectionRanges
};
}
var defaultLanguageServiceOptions = {};
function getCSSLanguageService(options) {
if (options === void 0) { options = defaultLanguageServiceOptions; }
var cssDataManager = new dataManager_1.CSSDataManager(options);
return createFacade(new cssParser_1.Parser(), new cssCompletion_1.CSSCompletion(null, options, cssDataManager), new cssHover_1.CSSHover(options && options.clientCapabilities, cssDataManager), new cssNavigation_1.CSSNavigation(options && options.fileSystemProvider), new cssCodeActions_1.CSSCodeActions(cssDataManager), new cssValidation_1.CSSValidation(cssDataManager), cssDataManager);
}
exports.getCSSLanguageService = getCSSLanguageService;
function getSCSSLanguageService(options) {
if (options === void 0) { options = defaultLanguageServiceOptions; }
var cssDataManager = new dataManager_1.CSSDataManager(options);
return createFacade(new scssParser_1.SCSSParser(), new scssCompletion_1.SCSSCompletion(options, cssDataManager), new cssHover_1.CSSHover(options && options.clientCapabilities, cssDataManager), new scssNavigation_1.SCSSNavigation(options && options.fileSystemProvider), new cssCodeActions_1.CSSCodeActions(cssDataManager), new cssValidation_1.CSSValidation(cssDataManager), cssDataManager);
}
exports.getSCSSLanguageService = getSCSSLanguageService;
function getLESSLanguageService(options) {
if (options === void 0) { options = defaultLanguageServiceOptions; }
var cssDataManager = new dataManager_1.CSSDataManager(options);
return createFacade(new lessParser_1.LESSParser(), new lessCompletion_1.LESSCompletion(options, cssDataManager), new cssHover_1.CSSHover(options && options.clientCapabilities, cssDataManager), new cssNavigation_1.CSSNavigation(options && options.fileSystemProvider), new cssCodeActions_1.CSSCodeActions(cssDataManager), new cssValidation_1.CSSValidation(cssDataManager), cssDataManager);
}
exports.getLESSLanguageService = getLESSLanguageService;
});