| Index: editor/tools/plugins/com.google.dart.tools.core/src/com/google/dart/tools/core/html/XmlNode.java
|
| ===================================================================
|
| --- editor/tools/plugins/com.google.dart.tools.core/src/com/google/dart/tools/core/html/XmlNode.java (revision 16584)
|
| +++ editor/tools/plugins/com.google.dart.tools.core/src/com/google/dart/tools/core/html/XmlNode.java (working copy)
|
| @@ -78,8 +78,10 @@
|
| public int getEndOffset() {
|
| if (endToken != null) {
|
| return endToken.getLocation() + endToken.getValue().length();
|
| + } else if (startToken != null) {
|
| + return startToken.getLocation() + startToken.getValue().length();
|
| } else {
|
| - return startToken.getLocation() + startToken.getValue().length();
|
| + return -1;
|
| }
|
| }
|
|
|
| @@ -99,12 +101,28 @@
|
| return label;
|
| }
|
|
|
| + public XmlNode getNodeFor(int offset) {
|
| + if (getStartOffset() <= offset && offset <= getEndOffset()) {
|
| + return this;
|
| + }
|
| +
|
| + for (int i = 0; i < children.size(); i++) {
|
| + XmlNode node = children.get(i).getNodeFor(offset);
|
| +
|
| + if (node != null) {
|
| + return node;
|
| + }
|
| + }
|
| +
|
| + return null;
|
| + }
|
| +
|
| public XmlNode getParent() {
|
| return parent;
|
| }
|
|
|
| public int getStartOffset() {
|
| - return startToken.getLocation();
|
| + return startToken == null ? -1 : startToken.getLocation();
|
| }
|
|
|
| public Token getStartToken() {
|
|
|