(srv, query, file)
| 1144 | } |
| 1145 | |
| 1146 | function findRefs(srv, query, file) { |
| 1147 | var expr = findExprOrThrow(file, query, true); |
| 1148 | if (expr && expr.node.type == "Identifier") { |
| 1149 | return findRefsToVariable(srv, query, file, expr); |
| 1150 | } else if (expr && expr.node.type == "MemberExpression" && !expr.node.computed) { |
| 1151 | var p = expr.node.property; |
| 1152 | expr.node = expr.node.object; |
| 1153 | return findRefsToProperty(srv, query, file, expr, p); |
| 1154 | } else if (expr && expr.node.type == "ObjectExpression") { |
| 1155 | var pos = resolvePos(file, query.end); |
| 1156 | for (var i = 0; i < expr.node.properties.length; ++i) { |
| 1157 | var k = expr.node.properties[i].key; |
| 1158 | if (k.start <= pos && k.end >= pos) |
| 1159 | return findRefsToProperty(srv, query, file, expr, k); |
| 1160 | } |
| 1161 | } else if (expr && expr.node.type == "MethodDefinition") { |
| 1162 | var p = expr.node.key; |
| 1163 | return findRefsToProperty(srv, query, file, expr, p); |
| 1164 | } |
| 1165 | throw ternError("Not at a variable or property name."); |
| 1166 | } |
| 1167 | |
| 1168 | function buildRename(srv, query, file) { |
| 1169 | if (typeof query.newName != "string") throw ternError(".query.newName should be a string"); |
nothing calls this directly
no test coverage detected
searching dependent graphs…