UNPKG

yaml-language-server

Version:
43 lines 1.97 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Red Hat, Inc. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ (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/yamlParser07"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSchemaFromModeline = getSchemaFromModeline; exports.isModeline = isModeline; const yamlParser07_1 = require("../parser/yamlParser07"); /** * Retrieve schema if declared as modeline. * Public for testing purpose, not part of the API. * @param doc */ function getSchemaFromModeline(doc) { if (doc instanceof yamlParser07_1.SingleYAMLDocument) { const yamlLanguageServerModeline = doc.documentHeaderComments.find((lineComment) => { return isModeline(lineComment); }); if (yamlLanguageServerModeline != undefined) { const schemaMatches = yamlLanguageServerModeline.match(/\$schema(?:=|:[^\S\r\n]*)(\S+)/); if (schemaMatches !== null && schemaMatches.length === 2) { return schemaMatches[1]; } } } return undefined; } function isModeline(lineText) { const matchModeline = lineText.match(/^#\s+(?:yaml-language-server\s*:|\$schema:)/g); return matchModeline !== null && matchModeline.length === 1; } }); //# sourceMappingURL=modelineUtil.js.map