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.
Running: testHighlightedText
Line: function foo(a, b) {
Column #0 (char 'f') - token: {"startColumn":0,"endColumn":7,"type":"js-keyword"}
Column #10 (char 'o') - token: {"startColumn":9,"endColumn":11,"type":"js-variable"}
Column #13 (char 'a') - token: {"startColumn":13,"endColumn":13,"type":"js-def"}
Column #0 (char 'f') - token: {"startColumn":0,"endColumn":8,"type":"js-keyword"}
Column #10 (char 'o') - token: {"startColumn":9,"endColumn":12,"type":"js-variable"}
Column #13 (char 'a') - token: {"startColumn":13,"endColumn":14,"type":"js-def"}
Line: var f = /.a/.test(a); /*
Column #8 (char 'f') - token: {"startColumn":8,"endColumn":8,"type":"js-def"}
Column #14 (char 'a') - token: {"startColumn":12,"endColumn":15,"type":"js-string-2"}
Column #19 (char 's') - token: {"startColumn":17,"endColumn":20,"type":"js-property"}
Column #8 (char 'f') - token: {"startColumn":8,"endColumn":9,"type":"js-def"}
Column #14 (char 'a') - token: {"startColumn":12,"endColumn":16,"type":"js-string-2"}
Column #19 (char 's') - token: {"startColumn":17,"endColumn":21,"type":"js-property"}
Line: this is a comment */
Column #0 (char 't') - token: {"startColumn":0,"endColumn":19,"type":"js-comment"}
Column #5 (char 'i') - 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":20,"type":"js-comment"}
Line: return f + "looongword";
Column #5 (char 'e') - token: {"startColumn":4,"endColumn":9,"type":"js-keyword"}
Column #20 (char 'n') - token: {"startColumn":15,"endColumn":26,"type":"js-string"}
Column #5 (char 'e') - token: {"startColumn":4,"endColumn":10,"type":"js-keyword"}
Column #20 (char 'n') - token: {"startColumn":15,"endColumn":27,"type":"js-string"}
......@@ -734,7 +734,7 @@ WebInspector.CodeMirrorTextEditor.prototype = {
return null;
return {
startColumn: token.start,
endColumn: token.end - 1,
endColumn: token.end,
type: token.type
};
},
......
......@@ -84,7 +84,7 @@ WebInspector.CSSSourceFrame.prototype = {
if (token.type !== "css-number")
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 newUnitText = this._modifyUnit(cssUnitText, change);
if (!newUnitText)
......
......@@ -515,20 +515,20 @@ WebInspector.JavaScriptSourceFrame.prototype = {
return;
var lineNumber = textPosition.startLine;
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";
if (!isIdentifier && (token.type !== "js-keyword" || tokenContent !== "this"))
return;
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);
anchorBox.highlight = {
lineNumber: lineNumber,
startColumn: token.startColumn,
endColumn: token.endColumn
endColumn: token.endColumn - 1
};
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