Commit d63ad9ac by David Committed by GitHub

Prometheus: Disable suggestions at beginning of value (#21302)

* Prometheus: Disable suggestions at beginning of value

- fixed comparison operator regex
- no longer suggest anything at beginning of label value

* Detect cursor in front of label values
parent 41fd265c
......@@ -303,10 +303,17 @@ export default class PromQlLanguageProvider extends LanguageProvider {
const suggestions: CompletionItemGroup[] = [];
const line = value.anchorBlock.getText();
const cursorOffset = value.selection.anchor.offset;
const nextChar = line[cursorOffset];
const isValueContext = wrapperClasses.includes('attr-value');
if (!nextChar.match(/["}]/)) {
// Don't suggest anything inside a value
const suffix = line.substr(cursorOffset);
const prefix = line.substr(0, cursorOffset);
const isValueStart = text.match(/^(=|=~|!=|!~)/);
const isValueEnd = suffix.match(/^"?[,}]/);
// detect cursor in front of value, e.g., {key=|"}
const isPreValue = prefix.match(/(=|=~|!=|!~)$/) && suffix.match(/^"/);
// Don't suggestq anything at the beginning or inside a value
const isValueEmpty = isValueStart && isValueEnd;
const hasValuePrefix = isValueEnd && !isValueStart;
if ((!isValueEmpty && !hasValuePrefix) || isPreValue) {
return { suggestions };
}
......@@ -335,7 +342,7 @@ export default class PromQlLanguageProvider extends LanguageProvider {
}
let context: string;
if ((text && text.match(/^!?=~?/)) || isValueContext) {
if ((text && isValueStart) || wrapperClasses.includes('attr-value')) {
// Label values
if (labelKey && labelValues[labelKey]) {
context = 'context-label-values';
......
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