Commit 2eb01a52 authored by apavlov@chromium.org's avatar apavlov@chromium.org

DevTools: Make TextEditor.tokenAtTextPosition() return exclusive end column

All call sites compensate for the inclusive end column by adding 1
to token.endColumn to get the actual token text.

R=lushnikov

Review URL: https://codereview.chromium.org/472793002

git-svn-id: svn://svn.chromium.org/blink/trunk@180260 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent cc3f7633
...@@ -3,17 +3,17 @@ Test editor tokenAtTextPosition method. ...@@ -3,17 +3,17 @@ Test editor tokenAtTextPosition method.
Running: testHighlightedText Running: testHighlightedText
Line: function foo(a, b) { Line: function foo(a, b) {
Column #0 (char 'f') - token: {"startColumn":0,"endColumn":7,"type":"js-keyword"} Column #0 (char 'f') - token: {"startColumn":0,"endColumn":8,"type":"js-keyword"}
Column #10 (char 'o') - token: {"startColumn":9,"endColumn":11,"type":"js-variable"} Column #10 (char 'o') - token: {"startColumn":9,"endColumn":12,"type":"js-variable"}
Column #13 (char 'a') - token: {"startColumn":13,"endColumn":13,"type":"js-def"} Column #13 (char 'a') - token: {"startColumn":13,"endColumn":14,"type":"js-def"}
Line: var f = /.a/.test(a); /* Line: var f = /.a/.test(a); /*
Column #8 (char 'f') - token: {"startColumn":8,"endColumn":8,"type":"js-def"} Column #8 (char 'f') - token: {"startColumn":8,"endColumn":9,"type":"js-def"}
Column #14 (char 'a') - token: {"startColumn":12,"endColumn":15,"type":"js-string-2"} Column #14 (char 'a') - token: {"startColumn":12,"endColumn":16,"type":"js-string-2"}
Column #19 (char 's') - token: {"startColumn":17,"endColumn":20,"type":"js-property"} Column #19 (char 's') - token: {"startColumn":17,"endColumn":21,"type":"js-property"}
Line: this is a comment */ Line: this is a comment */
Column #0 (char 't') - token: {"startColumn":0,"endColumn":19,"type":"js-comment"} Column #0 (char 't') - token: {"startColumn":0,"endColumn":20,"type":"js-comment"}
Column #5 (char 'i') - token: {"startColumn":0,"endColumn":19,"type":"js-comment"} Column #5 (char 'i') - token: {"startColumn":0,"endColumn":20,"type":"js-comment"}
Line: return f + "looongword"; Line: return f + "looongword";
Column #5 (char 'e') - token: {"startColumn":4,"endColumn":9,"type":"js-keyword"} Column #5 (char 'e') - token: {"startColumn":4,"endColumn":10,"type":"js-keyword"}
Column #20 (char 'n') - token: {"startColumn":15,"endColumn":26,"type":"js-string"} Column #20 (char 'n') - token: {"startColumn":15,"endColumn":27,"type":"js-string"}
...@@ -734,7 +734,7 @@ WebInspector.CodeMirrorTextEditor.prototype = { ...@@ -734,7 +734,7 @@ WebInspector.CodeMirrorTextEditor.prototype = {
return null; return null;
return { return {
startColumn: token.start, startColumn: token.start,
endColumn: token.end - 1, endColumn: token.end,
type: token.type type: token.type
}; };
}, },
......
...@@ -84,7 +84,7 @@ WebInspector.CSSSourceFrame.prototype = { ...@@ -84,7 +84,7 @@ WebInspector.CSSSourceFrame.prototype = {
if (token.type !== "css-number") if (token.type !== "css-number")
return false; return false;
var cssUnitRange = new WebInspector.TextRange(selection.startLine, token.startColumn, selection.startLine, token.endColumn + 1); var cssUnitRange = new WebInspector.TextRange(selection.startLine, token.startColumn, selection.startLine, token.endColumn);
var cssUnitText = this.textEditor.copyRange(cssUnitRange); var cssUnitText = this.textEditor.copyRange(cssUnitRange);
var newUnitText = this._modifyUnit(cssUnitText, change); var newUnitText = this._modifyUnit(cssUnitText, change);
if (!newUnitText) if (!newUnitText)
......
...@@ -515,20 +515,20 @@ WebInspector.JavaScriptSourceFrame.prototype = { ...@@ -515,20 +515,20 @@ WebInspector.JavaScriptSourceFrame.prototype = {
return; return;
var lineNumber = textPosition.startLine; var lineNumber = textPosition.startLine;
var line = this.textEditor.line(lineNumber); var line = this.textEditor.line(lineNumber);
var tokenContent = line.substring(token.startColumn, token.endColumn + 1); var tokenContent = line.substring(token.startColumn, token.endColumn);
var isIdentifier = token.type.startsWith("js-variable") || token.type.startsWith("js-property") || token.type == "js-def"; var isIdentifier = token.type.startsWith("js-variable") || token.type.startsWith("js-property") || token.type == "js-def";
if (!isIdentifier && (token.type !== "js-keyword" || tokenContent !== "this")) if (!isIdentifier && (token.type !== "js-keyword" || tokenContent !== "this"))
return; return;
var leftCorner = this.textEditor.cursorPositionToCoordinates(lineNumber, token.startColumn); var leftCorner = this.textEditor.cursorPositionToCoordinates(lineNumber, token.startColumn);
var rightCorner = this.textEditor.cursorPositionToCoordinates(lineNumber, token.endColumn + 1); var rightCorner = this.textEditor.cursorPositionToCoordinates(lineNumber, token.endColumn - 1);
var anchorBox = new AnchorBox(leftCorner.x, leftCorner.y, rightCorner.x - leftCorner.x, leftCorner.height); var anchorBox = new AnchorBox(leftCorner.x, leftCorner.y, rightCorner.x - leftCorner.x, leftCorner.height);
anchorBox.highlight = { anchorBox.highlight = {
lineNumber: lineNumber, lineNumber: lineNumber,
startColumn: token.startColumn, startColumn: token.startColumn,
endColumn: token.endColumn endColumn: token.endColumn - 1
}; };
return anchorBox; return anchorBox;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment