massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-go / node_modules / vscode-languageserver-textdocument / lib / umd / main.js
index 315deddc5b4d982b39c20aa79f1a34014e3140e5..55dd084a61e35ed0d3e51859cdee27161999f74a 100644 (file)
      * ------------------------------------------------------------------------------------------ */
     'use strict';
     Object.defineProperty(exports, "__esModule", { value: true });
-    var FullTextDocument = /** @class */ (function () {
-        function FullTextDocument(uri, languageId, version, content) {
+    exports.TextDocument = void 0;
+    class FullTextDocument {
+        constructor(uri, languageId, version, content) {
             this._uri = uri;
             this._languageId = languageId;
             this._version = version;
             this._content = content;
             this._lineOffsets = undefined;
         }
-        Object.defineProperty(FullTextDocument.prototype, "uri", {
-            get: function () {
-                return this._uri;
-            },
-            enumerable: true,
-            configurable: true
-        });
-        Object.defineProperty(FullTextDocument.prototype, "languageId", {
-            get: function () {
-                return this._languageId;
-            },
-            enumerable: true,
-            configurable: true
-        });
-        Object.defineProperty(FullTextDocument.prototype, "version", {
-            get: function () {
-                return this._version;
-            },
-            enumerable: true,
-            configurable: true
-        });
-        FullTextDocument.prototype.getText = function (range) {
+        get uri() {
+            return this._uri;
+        }
+        get languageId() {
+            return this._languageId;
+        }
+        get version() {
+            return this._version;
+        }
+        getText(range) {
             if (range) {
-                var start = this.offsetAt(range.start);
-                var end = this.offsetAt(range.end);
+                const start = this.offsetAt(range.start);
+                const end = this.offsetAt(range.end);
                 return this._content.substring(start, end);
             }
             return this._content;
-        };
-        FullTextDocument.prototype.update = function (changes, version) {
-            for (var _i = 0, changes_1 = changes; _i < changes_1.length; _i++) {
-                var change = changes_1[_i];
+        }
+        update(changes, version) {
+            for (let change of changes) {
                 if (FullTextDocument.isIncremental(change)) {
                     // makes sure start is before end
-                    var range = getWellformedRange(change.range);
+                    const range = getWellformedRange(change.range);
                     // update content
-                    var startOffset = this.offsetAt(range.start);
-                    var endOffset = this.offsetAt(range.end);
+                    const startOffset = this.offsetAt(range.start);
+                    const endOffset = this.offsetAt(range.end);
                     this._content = this._content.substring(0, startOffset) + change.text + this._content.substring(endOffset, this._content.length);
                     // update the offsets
-                    var startLine = Math.max(range.start.line, 0);
-                    var endLine = Math.max(range.end.line, 0);
-                    var lineOffsets = this._lineOffsets;
-                    var addedLineOffsets = computeLineOffsets(change.text, false, startOffset);
+                    const startLine = Math.max(range.start.line, 0);
+                    const endLine = Math.max(range.end.line, 0);
+                    let lineOffsets = this._lineOffsets;
+                    const addedLineOffsets = computeLineOffsets(change.text, false, startOffset);
                     if (endLine - startLine === addedLineOffsets.length) {
-                        for (var i = 0, len = addedLineOffsets.length; i < len; i++) {
+                        for (let i = 0, len = addedLineOffsets.length; i < len; i++) {
                             lineOffsets[i + startLine + 1] = addedLineOffsets[i];
                         }
                     }
                     else {
                         if (addedLineOffsets.length < 10000) {
-                            lineOffsets.splice.apply(lineOffsets, [startLine + 1, endLine - startLine].concat(addedLineOffsets));
+                            lineOffsets.splice(startLine + 1, endLine - startLine, ...addedLineOffsets);
                         }
                         else { // avoid too many arguments for splice
                             this._lineOffsets = lineOffsets = lineOffsets.slice(0, startLine + 1).concat(addedLineOffsets, lineOffsets.slice(endLine + 1));
                         }
                     }
-                    var diff = change.text.length - (endOffset - startOffset);
+                    const diff = change.text.length - (endOffset - startOffset);
                     if (diff !== 0) {
-                        for (var i = startLine + 1 + addedLineOffsets.length, len = lineOffsets.length; i < len; i++) {
+                        for (let i = startLine + 1 + addedLineOffsets.length, len = lineOffsets.length; i < len; i++) {
                             lineOffsets[i] = lineOffsets[i] + diff;
                         }
                     }
                 }
             }
             this._version = version;
-        };
-        FullTextDocument.prototype.getLineOffsets = function () {
+        }
+        getLineOffsets() {
             if (this._lineOffsets === undefined) {
                 this._lineOffsets = computeLineOffsets(this._content, true);
             }
             return this._lineOffsets;
-        };
-        FullTextDocument.prototype.positionAt = function (offset) {
+        }
+        positionAt(offset) {
             offset = Math.max(Math.min(offset, this._content.length), 0);
-            var lineOffsets = this.getLineOffsets();
-            var low = 0, high = lineOffsets.length;
+            let lineOffsets = this.getLineOffsets();
+            let low = 0, high = lineOffsets.length;
             if (high === 0) {
                 return { line: 0, character: offset };
             }
             while (low < high) {
-                var mid = Math.floor((low + high) / 2);
+                let mid = Math.floor((low + high) / 2);
                 if (lineOffsets[mid] > offset) {
                     high = mid;
                 }
             }
             // low is the least x for which the line offset is larger than the current offset
             // or array.length if no line offset is larger than the current offset
-            var line = low - 1;
-            return { line: line, character: offset - lineOffsets[line] };
-        };
-        FullTextDocument.prototype.offsetAt = function (position) {
-            var lineOffsets = this.getLineOffsets();
+            let line = low - 1;
+            return { line, character: offset - lineOffsets[line] };
+        }
+        offsetAt(position) {
+            let lineOffsets = this.getLineOffsets();
             if (position.line >= lineOffsets.length) {
                 return this._content.length;
             }
             else if (position.line < 0) {
                 return 0;
             }
-            var lineOffset = lineOffsets[position.line];
-            var nextLineOffset = (position.line + 1 < lineOffsets.length) ? lineOffsets[position.line + 1] : this._content.length;
+            let lineOffset = lineOffsets[position.line];
+            let nextLineOffset = (position.line + 1 < lineOffsets.length) ? lineOffsets[position.line + 1] : this._content.length;
             return Math.max(Math.min(lineOffset + position.character, nextLineOffset), lineOffset);
-        };
-        Object.defineProperty(FullTextDocument.prototype, "lineCount", {
-            get: function () {
-                return this.getLineOffsets().length;
-            },
-            enumerable: true,
-            configurable: true
-        });
-        FullTextDocument.isIncremental = function (event) {
-            var candidate = event;
+        }
+        get lineCount() {
+            return this.getLineOffsets().length;
+        }
+        static isIncremental(event) {
+            let candidate = event;
             return candidate !== undefined && candidate !== null &&
                 typeof candidate.text === 'string' && candidate.range !== undefined &&
                 (candidate.rangeLength === undefined || typeof candidate.rangeLength === 'number');
-        };
-        FullTextDocument.isFull = function (event) {
-            var candidate = event;
+        }
+        static isFull(event) {
+            let candidate = event;
             return candidate !== undefined && candidate !== null &&
                 typeof candidate.text === 'string' && candidate.range === undefined && candidate.rangeLength === undefined;
-        };
-        return FullTextDocument;
-    }());
+        }
+    }
     var TextDocument;
     (function (TextDocument) {
         /**
         }
         TextDocument.create = create;
         /**
-         * Updates a TextDocument by modifing its content.
+         * Updates a TextDocument by modifying its content.
          *
          * @param document the document to update. Only documents created by TextDocument.create are valid inputs.
          * @param changes the changes to apply to the document.
+         * @param version the changes version for the document.
          * @returns The updated TextDocument. Note: That's the same document instance passed in as first parameter.
          *
          */
         }
         TextDocument.update = update;
         function applyEdits(document, edits) {
-            var text = document.getText();
-            var sortedEdits = mergeSort(edits.map(getWellformedEdit), function (a, b) {
-                var diff = a.range.start.line - b.range.start.line;
+            let text = document.getText();
+            let sortedEdits = mergeSort(edits.map(getWellformedEdit), (a, b) => {
+                let diff = a.range.start.line - b.range.start.line;
                 if (diff === 0) {
                     return a.range.start.character - b.range.start.character;
                 }
                 return diff;
             });
-            var lastModifiedOffset = 0;
-            var spans = [];
-            for (var _i = 0, sortedEdits_1 = sortedEdits; _i < sortedEdits_1.length; _i++) {
-                var e = sortedEdits_1[_i];
-                var startOffset = document.offsetAt(e.range.start);
+            let lastModifiedOffset = 0;
+            const spans = [];
+            for (const e of sortedEdits) {
+                let startOffset = document.offsetAt(e.range.start);
                 if (startOffset < lastModifiedOffset) {
                     throw new Error('Overlapping edit');
                 }
             // sorted
             return data;
         }
-        var p = (data.length / 2) | 0;
-        var left = data.slice(0, p);
-        var right = data.slice(p);
+        const p = (data.length / 2) | 0;
+        const left = data.slice(0, p);
+        const right = data.slice(p);
         mergeSort(left, compare);
         mergeSort(right, compare);
-        var leftIdx = 0;
-        var rightIdx = 0;
-        var i = 0;
+        let leftIdx = 0;
+        let rightIdx = 0;
+        let i = 0;
         while (leftIdx < left.length && rightIdx < right.length) {
-            var ret = compare(left[leftIdx], right[rightIdx]);
+            let ret = compare(left[leftIdx], right[rightIdx]);
             if (ret <= 0) {
                 // smaller_equal -> take left to preserve order
                 data[i++] = left[leftIdx++];
         }
         return data;
     }
-    function computeLineOffsets(text, isAtLineStart, textOffset) {
-        if (textOffset === void 0) { textOffset = 0; }
-        var result = isAtLineStart ? [textOffset] : [];
-        for (var i = 0; i < text.length; i++) {
-            var ch = text.charCodeAt(i);
+    function computeLineOffsets(text, isAtLineStart, textOffset = 0) {
+        const result = isAtLineStart ? [textOffset] : [];
+        for (let i = 0; i < text.length; i++) {
+            let ch = text.charCodeAt(i);
             if (ch === 13 /* CarriageReturn */ || ch === 10 /* LineFeed */) {
                 if (ch === 13 /* CarriageReturn */ && i + 1 < text.length && text.charCodeAt(i + 1) === 10 /* LineFeed */) {
                     i++;
         return result;
     }
     function getWellformedRange(range) {
-        var start = range.start;
-        var end = range.end;
+        const start = range.start;
+        const end = range.end;
         if (start.line > end.line || (start.line === end.line && start.character > end.character)) {
             return { start: end, end: start };
         }
         return range;
     }
     function getWellformedEdit(textEdit) {
-        var range = getWellformedRange(textEdit.range);
+        const range = getWellformedRange(textEdit.range);
         if (range !== textEdit.range) {
-            return { newText: textEdit.newText, range: range };
+            return { newText: textEdit.newText, range };
         }
         return textEdit;
     }