(srv, query, file)
| 1079 | } |
| 1080 | |
| 1081 | function findRefs(srv, query, file) { |
| 1082 | var expr = findExprOrThrow(file, query, true); |
| 1083 | if (expr && expr.node.type == "Identifier") { |
| 1084 | return findRefsToVariable(srv, query, file, expr); |
| 1085 | } else if (expr && expr.node.type == "MemberExpression" && !expr.node.computed) { |
| 1086 | var p = expr.node.property; |
| 1087 | expr.node = expr.node.object; |
| 1088 | return findRefsToProperty(srv, query, file, expr, p); |
| 1089 | } else if (expr && expr.node.type == "ObjectExpression") { |
| 1090 | var pos = resolvePos(file, query.end); |
| 1091 | for (var i = 0; i < expr.node.properties.length; ++i) { |
| 1092 | var k = expr.node.properties[i].key; |
| 1093 | if (k.start <= pos && k.end >= pos) |
| 1094 | return findRefsToProperty(srv, query, file, expr, k); |
| 1095 | } |
| 1096 | } else if (expr && expr.node.type == "MethodDefinition") { |
| 1097 | var p = expr.node.key; |
| 1098 | return findRefsToProperty(srv, query, file, expr, p); |
| 1099 | } |
| 1100 | throw ternError("Not at a variable or property name."); |
| 1101 | } |
| 1102 | |
| 1103 | function buildRename(srv, query, file) { |
| 1104 | if (typeof query.newName != "string") throw ternError(".query.newName should be a string"); |
nothing calls this directly
no test coverage detected