massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-json / node_modules / vscode-json-languageservice / lib / esm / jsonLanguageService.js
diff --git a/.config/coc/extensions/node_modules/coc-json/node_modules/vscode-json-languageservice/lib/esm/jsonLanguageService.js b/.config/coc/extensions/node_modules/coc-json/node_modules/vscode-json-languageservice/lib/esm/jsonLanguageService.js
new file mode 100644 (file)
index 0000000..7008636
--- /dev/null
@@ -0,0 +1,65 @@
+/*---------------------------------------------------------------------------------------------
+ *  Copyright (c) Microsoft Corporation. All rights reserved.
+ *  Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+import { JSONCompletion } from './services/jsonCompletion';
+import { JSONHover } from './services/jsonHover';
+import { JSONValidation } from './services/jsonValidation';
+import { JSONDocumentSymbols } from './services/jsonDocumentSymbols';
+import { parse as parseJSON, newJSONDocument } from './parser/jsonParser';
+import { schemaContributions } from './services/configuration';
+import { JSONSchemaService } from './services/jsonSchemaService';
+import { getFoldingRanges } from './services/jsonFolding';
+import { getSelectionRanges } from './services/jsonSelectionRanges';
+import { format as formatJSON } from 'jsonc-parser';
+import { Range, TextEdit } from './jsonLanguageTypes';
+import { findLinks } from './services/jsonLinks';
+export * from './jsonLanguageTypes';
+export function getLanguageService(params) {
+    var promise = params.promiseConstructor || Promise;
+    var jsonSchemaService = new JSONSchemaService(params.schemaRequestService, params.workspaceContext, promise);
+    jsonSchemaService.setSchemaContributions(schemaContributions);
+    var jsonCompletion = new JSONCompletion(jsonSchemaService, params.contributions, promise, params.clientCapabilities);
+    var jsonHover = new JSONHover(jsonSchemaService, params.contributions, promise);
+    var jsonDocumentSymbols = new JSONDocumentSymbols(jsonSchemaService);
+    var jsonValidation = new JSONValidation(jsonSchemaService, promise);
+    return {
+        configure: function (settings) {
+            jsonSchemaService.clearExternalSchemas();
+            if (settings.schemas) {
+                settings.schemas.forEach(function (settings) {
+                    jsonSchemaService.registerExternalSchema(settings.uri, settings.fileMatch, settings.schema);
+                });
+            }
+            jsonValidation.configure(settings);
+        },
+        resetSchema: function (uri) { return jsonSchemaService.onResourceChange(uri); },
+        doValidation: jsonValidation.doValidation.bind(jsonValidation),
+        parseJSONDocument: function (document) { return parseJSON(document, { collectComments: true }); },
+        newJSONDocument: function (root, diagnostics) { return newJSONDocument(root, diagnostics); },
+        getMatchingSchemas: jsonSchemaService.getMatchingSchemas.bind(jsonSchemaService),
+        doResolve: jsonCompletion.doResolve.bind(jsonCompletion),
+        doComplete: jsonCompletion.doComplete.bind(jsonCompletion),
+        findDocumentSymbols: jsonDocumentSymbols.findDocumentSymbols.bind(jsonDocumentSymbols),
+        findDocumentSymbols2: jsonDocumentSymbols.findDocumentSymbols2.bind(jsonDocumentSymbols),
+        findDocumentColors: jsonDocumentSymbols.findDocumentColors.bind(jsonDocumentSymbols),
+        getColorPresentations: jsonDocumentSymbols.getColorPresentations.bind(jsonDocumentSymbols),
+        doHover: jsonHover.doHover.bind(jsonHover),
+        getFoldingRanges: getFoldingRanges,
+        getSelectionRanges: getSelectionRanges,
+        findDefinition: function () { return Promise.resolve([]); },
+        findLinks: findLinks,
+        format: function (d, r, o) {
+            var range = undefined;
+            if (r) {
+                var offset = d.offsetAt(r.start);
+                var length = d.offsetAt(r.end) - offset;
+                range = { offset: offset, length: length };
+            }
+            var options = { tabSize: o ? o.tabSize : 4, insertSpaces: (o === null || o === void 0 ? void 0 : o.insertSpaces) === true, insertFinalNewline: (o === null || o === void 0 ? void 0 : o.insertFinalNewline) === true, eol: '\n' };
+            return formatJSON(d.getText(), range, options).map(function (e) {
+                return TextEdit.replace(Range.create(d.positionAt(e.offset), d.positionAt(e.offset + e.length)), e.content);
+            });
+        }
+    };
+}