Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Unified Diff: third_party/WebKit/Source/devtools/front_end/common/Text.js

Issue 2769843003: DevTools: split text_utils out of common module (Closed)
Patch Set: rebaseline Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/devtools/front_end/common/Text.js
diff --git a/third_party/WebKit/Source/devtools/front_end/common/Text.js b/third_party/WebKit/Source/devtools/front_end/common/Text.js
deleted file mode 100644
index 30cea1b1675422a5668ecb91a390d634b7998998..0000000000000000000000000000000000000000
--- a/third_party/WebKit/Source/devtools/front_end/common/Text.js
+++ /dev/null
@@ -1,179 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-self['Common'] = self['Common'] || {};
-
-/**
- * @unrestricted
- */
-Common.Text = class {
- /**
- * @param {string} value
- */
- constructor(value) {
- this._value = value;
- }
-
- /**
- * @return {!Array<number>}
- */
- lineEndings() {
- if (!this._lineEndings)
- this._lineEndings = this._value.computeLineEndings();
- return this._lineEndings;
- }
-
- /**
- * @return {string}
- */
- value() {
- return this._value;
- }
-
- /**
- * @return {number}
- */
- lineCount() {
- var lineEndings = this.lineEndings();
- return lineEndings.length;
- }
-
- /**
- * @param {number} lineNumber
- * @param {number} columnNumber
- * @return {number}
- */
- offsetFromPosition(lineNumber, columnNumber) {
- return (lineNumber ? this.lineEndings()[lineNumber - 1] + 1 : 0) + columnNumber;
- }
-
- /**
- * @param {number} offset
- * @return {!Common.Text.Position}
- */
- positionFromOffset(offset) {
- var lineEndings = this.lineEndings();
- var lineNumber = lineEndings.lowerBound(offset);
- return {lineNumber: lineNumber, columnNumber: offset - (lineNumber && (lineEndings[lineNumber - 1] + 1))};
- }
-
- /**
- * @return {string}
- */
- lineAt(lineNumber) {
- var lineEndings = this.lineEndings();
- var lineStart = lineNumber > 0 ? lineEndings[lineNumber - 1] + 1 : 0;
- var lineEnd = lineEndings[lineNumber];
- var lineContent = this._value.substring(lineStart, lineEnd);
- if (lineContent.length > 0 && lineContent.charAt(lineContent.length - 1) === '\r')
- lineContent = lineContent.substring(0, lineContent.length - 1);
- return lineContent;
- }
-
- /**
- * @param {!Common.TextRange} range
- * @return {!Common.SourceRange}
- */
- toSourceRange(range) {
- var start = this.offsetFromPosition(range.startLine, range.startColumn);
- var end = this.offsetFromPosition(range.endLine, range.endColumn);
- return new Common.SourceRange(start, end - start);
- }
-
- /**
- * @param {!Common.SourceRange} sourceRange
- * @return {!Common.TextRange}
- */
- toTextRange(sourceRange) {
- var cursor = new Common.TextCursor(this.lineEndings());
- var result = Common.TextRange.createFromLocation(0, 0);
-
- cursor.resetTo(sourceRange.offset);
- result.startLine = cursor.lineNumber();
- result.startColumn = cursor.columnNumber();
-
- cursor.advance(sourceRange.offset + sourceRange.length);
- result.endLine = cursor.lineNumber();
- result.endColumn = cursor.columnNumber();
- return result;
- }
-
- /**
- * @param {!Common.TextRange} range
- * @param {string} replacement
- * @return {string}
- */
- replaceRange(range, replacement) {
- var sourceRange = this.toSourceRange(range);
- return this._value.substring(0, sourceRange.offset) + replacement +
- this._value.substring(sourceRange.offset + sourceRange.length);
- }
-
- /**
- * @param {!Common.TextRange} range
- * @return {string}
- */
- extract(range) {
- var sourceRange = this.toSourceRange(range);
- return this._value.substr(sourceRange.offset, sourceRange.length);
- }
-};
-
-/** @typedef {{lineNumber: number, columnNumber: number}} */
-Common.Text.Position;
-
-/**
- * @unrestricted
- */
-Common.TextCursor = class {
- /**
- * @param {!Array<number>} lineEndings
- */
- constructor(lineEndings) {
- this._lineEndings = lineEndings;
- this._offset = 0;
- this._lineNumber = 0;
- this._columnNumber = 0;
- }
-
- /**
- * @param {number} offset
- */
- advance(offset) {
- this._offset = offset;
- while (this._lineNumber < this._lineEndings.length && this._lineEndings[this._lineNumber] < this._offset)
- ++this._lineNumber;
- this._columnNumber = this._lineNumber ? this._offset - this._lineEndings[this._lineNumber - 1] - 1 : this._offset;
- }
-
- /**
- * @return {number}
- */
- offset() {
- return this._offset;
- }
-
- /**
- * @param {number} offset
- */
- resetTo(offset) {
- this._offset = offset;
- this._lineNumber = this._lineEndings.lowerBound(offset);
- this._columnNumber = this._lineNumber ? this._offset - this._lineEndings[this._lineNumber - 1] - 1 : this._offset;
- }
-
- /**
- * @return {number}
- */
- lineNumber() {
- return this._lineNumber;
- }
-
- /**
- * @return {number}
- */
- columnNumber() {
- return this._columnNumber;
- }
-};

Powered by Google App Engine
This is Rietveld 408576698