UNPKG

monaco-editor

Version:
88 lines (87 loc) 3.4 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ var BasicInplaceReplace = /** @class */ (function () { function BasicInplaceReplace() { this._defaultValueSet = [ ['true', 'false'], ['True', 'False'], ['Private', 'Public', 'Friend', 'ReadOnly', 'Partial', 'Protected', 'WriteOnly'], ['public', 'protected', 'private'], ]; } BasicInplaceReplace.prototype.navigateValueSet = function (range1, text1, range2, text2, up) { if (range1 && text1) { var result = this.doNavigateValueSet(text1, up); if (result) { return { range: range1, value: result }; } } if (range2 && text2) { var result = this.doNavigateValueSet(text2, up); if (result) { return { range: range2, value: result }; } } return null; }; BasicInplaceReplace.prototype.doNavigateValueSet = function (text, up) { var numberResult = this.numberReplace(text, up); if (numberResult !== null) { return numberResult; } return this.textReplace(text, up); }; BasicInplaceReplace.prototype.numberReplace = function (value, up) { var precision = Math.pow(10, value.length - (value.lastIndexOf('.') + 1)); var n1 = Number(value); var n2 = parseFloat(value); if (!isNaN(n1) && !isNaN(n2) && n1 === n2) { if (n1 === 0 && !up) { return null; // don't do negative // } else if(n1 === 9 && up) { // return null; // don't insert 10 into a number } else { n1 = Math.floor(n1 * precision); n1 += up ? precision : -precision; return String(n1 / precision); } } return null; }; BasicInplaceReplace.prototype.textReplace = function (value, up) { return this.valueSetsReplace(this._defaultValueSet, value, up); }; BasicInplaceReplace.prototype.valueSetsReplace = function (valueSets, value, up) { var result = null; for (var i = 0, len = valueSets.length; result === null && i < len; i++) { result = this.valueSetReplace(valueSets[i], value, up); } return result; }; BasicInplaceReplace.prototype.valueSetReplace = function (valueSet, value, up) { var idx = valueSet.indexOf(value); if (idx >= 0) { idx += up ? +1 : -1; if (idx < 0) { idx = valueSet.length - 1; } else { idx %= valueSet.length; } return valueSet[idx]; } return null; }; BasicInplaceReplace.INSTANCE = new BasicInplaceReplace(); return BasicInplaceReplace; }()); export { BasicInplaceReplace };