UNPKG

monaco-editor

Version:
243 lines (242 loc) • 10 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { Emitter } from '../../../base/common/event.js'; import { Range } from '../../common/core/range.js'; function effectiveOptionValue(override, value) { if (override === 1 /* True */) { return true; } if (override === 2 /* False */) { return false; } return value; } var FindReplaceState = /** @class */ (function () { function FindReplaceState() { this._searchString = ''; this._replaceString = ''; this._isRevealed = false; this._isReplaceRevealed = false; this._isRegex = false; this._isRegexOverride = 0 /* NotSet */; this._wholeWord = false; this._wholeWordOverride = 0 /* NotSet */; this._matchCase = false; this._matchCaseOverride = 0 /* NotSet */; this._searchScope = null; this._matchesPosition = 0; this._matchesCount = 0; this._currentMatch = null; this._onFindReplaceStateChange = new Emitter(); } Object.defineProperty(FindReplaceState.prototype, "searchString", { get: function () { return this._searchString; }, enumerable: true, configurable: true }); Object.defineProperty(FindReplaceState.prototype, "replaceString", { get: function () { return this._replaceString; }, enumerable: true, configurable: true }); Object.defineProperty(FindReplaceState.prototype, "isRevealed", { get: function () { return this._isRevealed; }, enumerable: true, configurable: true }); Object.defineProperty(FindReplaceState.prototype, "isReplaceRevealed", { get: function () { return this._isReplaceRevealed; }, enumerable: true, configurable: true }); Object.defineProperty(FindReplaceState.prototype, "isRegex", { get: function () { return effectiveOptionValue(this._isRegexOverride, this._isRegex); }, enumerable: true, configurable: true }); Object.defineProperty(FindReplaceState.prototype, "wholeWord", { get: function () { return effectiveOptionValue(this._wholeWordOverride, this._wholeWord); }, enumerable: true, configurable: true }); Object.defineProperty(FindReplaceState.prototype, "matchCase", { get: function () { return effectiveOptionValue(this._matchCaseOverride, this._matchCase); }, enumerable: true, configurable: true }); Object.defineProperty(FindReplaceState.prototype, "actualIsRegex", { get: function () { return this._isRegex; }, enumerable: true, configurable: true }); Object.defineProperty(FindReplaceState.prototype, "actualWholeWord", { get: function () { return this._wholeWord; }, enumerable: true, configurable: true }); Object.defineProperty(FindReplaceState.prototype, "actualMatchCase", { get: function () { return this._matchCase; }, enumerable: true, configurable: true }); Object.defineProperty(FindReplaceState.prototype, "searchScope", { get: function () { return this._searchScope; }, enumerable: true, configurable: true }); Object.defineProperty(FindReplaceState.prototype, "matchesPosition", { get: function () { return this._matchesPosition; }, enumerable: true, configurable: true }); Object.defineProperty(FindReplaceState.prototype, "matchesCount", { get: function () { return this._matchesCount; }, enumerable: true, configurable: true }); Object.defineProperty(FindReplaceState.prototype, "currentMatch", { get: function () { return this._currentMatch; }, enumerable: true, configurable: true }); Object.defineProperty(FindReplaceState.prototype, "onFindReplaceStateChange", { get: function () { return this._onFindReplaceStateChange.event; }, enumerable: true, configurable: true }); FindReplaceState.prototype.dispose = function () { }; FindReplaceState.prototype.changeMatchInfo = function (matchesPosition, matchesCount, currentMatch) { var changeEvent = { moveCursor: false, updateHistory: false, searchString: false, replaceString: false, isRevealed: false, isReplaceRevealed: false, isRegex: false, wholeWord: false, matchCase: false, searchScope: false, matchesPosition: false, matchesCount: false, currentMatch: false }; var somethingChanged = false; if (matchesCount === 0) { matchesPosition = 0; } if (matchesPosition > matchesCount) { matchesPosition = matchesCount; } if (this._matchesPosition !== matchesPosition) { this._matchesPosition = matchesPosition; changeEvent.matchesPosition = true; somethingChanged = true; } if (this._matchesCount !== matchesCount) { this._matchesCount = matchesCount; changeEvent.matchesCount = true; somethingChanged = true; } if (typeof currentMatch !== 'undefined') { if (!Range.equalsRange(this._currentMatch, currentMatch)) { this._currentMatch = currentMatch; changeEvent.currentMatch = true; somethingChanged = true; } } if (somethingChanged) { this._onFindReplaceStateChange.fire(changeEvent); } }; FindReplaceState.prototype.change = function (newState, moveCursor, updateHistory) { if (updateHistory === void 0) { updateHistory = true; } var changeEvent = { moveCursor: moveCursor, updateHistory: updateHistory, searchString: false, replaceString: false, isRevealed: false, isReplaceRevealed: false, isRegex: false, wholeWord: false, matchCase: false, searchScope: false, matchesPosition: false, matchesCount: false, currentMatch: false }; var somethingChanged = false; var oldEffectiveIsRegex = this.isRegex; var oldEffectiveWholeWords = this.wholeWord; var oldEffectiveMatchCase = this.matchCase; if (typeof newState.searchString !== 'undefined') { if (this._searchString !== newState.searchString) { this._searchString = newState.searchString; changeEvent.searchString = true; somethingChanged = true; } } if (typeof newState.replaceString !== 'undefined') { if (this._replaceString !== newState.replaceString) { this._replaceString = newState.replaceString; changeEvent.replaceString = true; somethingChanged = true; } } if (typeof newState.isRevealed !== 'undefined') { if (this._isRevealed !== newState.isRevealed) { this._isRevealed = newState.isRevealed; changeEvent.isRevealed = true; somethingChanged = true; } } if (typeof newState.isReplaceRevealed !== 'undefined') { if (this._isReplaceRevealed !== newState.isReplaceRevealed) { this._isReplaceRevealed = newState.isReplaceRevealed; changeEvent.isReplaceRevealed = true; somethingChanged = true; } } if (typeof newState.isRegex !== 'undefined') { this._isRegex = newState.isRegex; } if (typeof newState.wholeWord !== 'undefined') { this._wholeWord = newState.wholeWord; } if (typeof newState.matchCase !== 'undefined') { this._matchCase = newState.matchCase; } if (typeof newState.searchScope !== 'undefined') { if (!Range.equalsRange(this._searchScope, newState.searchScope)) { this._searchScope = newState.searchScope; changeEvent.searchScope = true; somethingChanged = true; } } // Overrides get set when they explicitly come in and get reset anytime something else changes this._isRegexOverride = (typeof newState.isRegexOverride !== 'undefined' ? newState.isRegexOverride : 0 /* NotSet */); this._wholeWordOverride = (typeof newState.wholeWordOverride !== 'undefined' ? newState.wholeWordOverride : 0 /* NotSet */); this._matchCaseOverride = (typeof newState.matchCaseOverride !== 'undefined' ? newState.matchCaseOverride : 0 /* NotSet */); if (oldEffectiveIsRegex !== this.isRegex) { somethingChanged = true; changeEvent.isRegex = true; } if (oldEffectiveWholeWords !== this.wholeWord) { somethingChanged = true; changeEvent.wholeWord = true; } if (oldEffectiveMatchCase !== this.matchCase) { somethingChanged = true; changeEvent.matchCase = true; } if (somethingChanged) { this._onFindReplaceStateChange.fire(changeEvent); } }; return FindReplaceState; }()); export { FindReplaceState };