%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : www.kowitt.ac.th / Your IP : 216.73.216.118 Web Server : Microsoft-IIS/7.5 System : Windows NT SERVER02 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.6.31 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /Program Files/Microsoft VS Code/resources/app/extensions/emmet/out/ |
Upload File : |
"use strict"; /*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ Object.defineProperty(exports, "__esModule", { value: true }); /* Based on @sergeche's work in his emmet plugin */ const vscode = require("vscode"); const reNumber = /[0-9]/; /** * Incerement number under caret of given editor */ function incrementDecrement(delta) { if (!vscode.window.activeTextEditor) { vscode.window.showInformationMessage('No editor is active'); return; } const editor = vscode.window.activeTextEditor; return editor.edit(editBuilder => { editor.selections.forEach(selection => { let rangeToReplace = locate(editor.document, selection.isReversed ? selection.anchor : selection.active); if (!rangeToReplace) { return; } const text = editor.document.getText(rangeToReplace); if (isValidNumber(text)) { editBuilder.replace(rangeToReplace, update(text, delta)); } }); }); } exports.incrementDecrement = incrementDecrement; /** * Updates given number with `delta` and returns string formatted according * to original string format */ function update(numString, delta) { let m; let decimals = (m = numString.match(/\.(\d+)$/)) ? m[1].length : 1; let output = String((parseFloat(numString) + delta).toFixed(decimals)).replace(/\.0+$/, ''); if (m = numString.match(/^\-?(0\d+)/)) { // padded number: preserve padding output = output.replace(/^(\-?)(\d+)/, (str, minus, prefix) => minus + '0'.repeat(Math.max(0, (m ? m[1].length : 0) - prefix.length)) + prefix); } if (/^\-?\./.test(numString)) { // omit integer part output = output.replace(/^(\-?)0+/, '$1'); } return output; } exports.update = update; /** * Locates number from given position in the document * * @return Range of number or `undefined` if not found */ function locate(document, pos) { const line = document.lineAt(pos.line).text; let start = pos.character; let end = pos.character; let hadDot = false, hadMinus = false; let ch; while (start > 0) { ch = line[--start]; if (ch === '-') { hadMinus = true; break; } else if (ch === '.' && !hadDot) { hadDot = true; } else if (!reNumber.test(ch)) { start++; break; } } if (line[end] === '-' && !hadMinus) { end++; } while (end < line.length) { ch = line[end++]; if (ch === '.' && !hadDot && reNumber.test(line[end])) { // A dot must be followed by a number. Otherwise stop parsing hadDot = true; } else if (!reNumber.test(ch)) { end--; break; } } // ensure that found range contains valid number if (start !== end && isValidNumber(line.slice(start, end))) { return new vscode.Range(pos.line, start, pos.line, end); } } exports.locate = locate; /** * Check if given string contains valid number */ function isValidNumber(str) { return str ? !isNaN(parseFloat(str)) : false; } //# sourceMappingURL=https://ticino.blob.core.windows.net/sourcemaps/0f080e5267e829de46638128001aeb7ca2d6d50e/extensions\emmet\out/incrementDecrement.js.map