| /*--------------------------------------------------------------------------------------------- |
| * Copyright (c) Microsoft Corporation. All rights reserved. |
| * Licensed under the MIT License. See License.txt in the project root for license information. |
| *--------------------------------------------------------------------------------------------*/ |
| 'use strict'; |
| import * as nodes from '../parser/cssNodes'; |
| import { LintConfigurationSettings, Rules } from './lintRules'; |
| import { LintVisitor } from './lint'; |
| import { Range, DiagnosticSeverity } from '../cssLanguageTypes'; |
| var CSSValidation = /** @class */ (function () { |
| function CSSValidation(cssDataManager) { |
| this.cssDataManager = cssDataManager; |
| } |
| CSSValidation.prototype.configure = function (settings) { |
| this.settings = settings; |
| }; |
| CSSValidation.prototype.doValidation = function (document, stylesheet, settings) { |
| if (settings === void 0) { settings = this.settings; } |
| if (settings && settings.validate === false) { |
| return []; |
| } |
| var entries = []; |
| entries.push.apply(entries, nodes.ParseErrorCollector.entries(stylesheet)); |
| entries.push.apply(entries, LintVisitor.entries(stylesheet, document, new LintConfigurationSettings(settings && settings.lint), this.cssDataManager)); |
| var ruleIds = []; |
| for (var r in Rules) { |
| ruleIds.push(Rules[r].id); |
| } |
| function toDiagnostic(marker) { |
| var range = Range.create(document.positionAt(marker.getOffset()), document.positionAt(marker.getOffset() + marker.getLength())); |
| var source = document.languageId; |
| return { |
| code: marker.getRule().id, |
| source: source, |
| message: marker.getMessage(), |
| severity: marker.getLevel() === nodes.Level.Warning ? DiagnosticSeverity.Warning : DiagnosticSeverity.Error, |
| range: range |
| }; |
| } |
| return entries.filter(function (entry) { return entry.getLevel() !== nodes.Level.Ignore; }).map(toDiagnostic); |
| }; |
| return CSSValidation; |
| }()); |
| export { CSSValidation }; |