|
|
|
@ -159,11 +159,11 @@ Prometheus.Graph.prototype.initialize = function() {
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// Returns true if the character at "pos" in the expression string "str" looks
|
|
|
|
|
// like it could be a metric name (if it's not in a string or a label matchers
|
|
|
|
|
// section).
|
|
|
|
|
// like it could be a metric name (if it's not in a string, a label matchers
|
|
|
|
|
// section, or a range specification).
|
|
|
|
|
function isPotentialMetric(str, pos) {
|
|
|
|
|
var quote = null;
|
|
|
|
|
var inMatchers = false;
|
|
|
|
|
var inMatchersOrRange = false;
|
|
|
|
|
|
|
|
|
|
for (var i = 0; i < pos; i++) {
|
|
|
|
|
var ch = str[i];
|
|
|
|
@ -185,7 +185,7 @@ function isPotentialMetric(str, pos) {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Ignore curly braces in strings.
|
|
|
|
|
// Ignore curly braces and square brackets in strings.
|
|
|
|
|
if (quote) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
@ -193,15 +193,17 @@ function isPotentialMetric(str, pos) {
|
|
|
|
|
// Track whether we are in curly braces (label matchers).
|
|
|
|
|
switch (ch) {
|
|
|
|
|
case "{":
|
|
|
|
|
inMatchers = true;
|
|
|
|
|
case "[":
|
|
|
|
|
inMatchersOrRange = true;
|
|
|
|
|
break;
|
|
|
|
|
case "}":
|
|
|
|
|
inMatchers = false;
|
|
|
|
|
case "]":
|
|
|
|
|
inMatchersOrRange = false;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return !inMatchers && quote === null;
|
|
|
|
|
return !inMatchersOrRange && quote === null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Returns the current word under the cursor position in $input.
|
|
|
|
|