diff --git a/public/app/core/components/code_editor/code_editor.ts b/public/app/core/components/code_editor/code_editor.ts index 582c58592f9..18141877bda 100644 --- a/public/app/core/components/code_editor/code_editor.ts +++ b/public/app/core/components/code_editor/code_editor.ts @@ -128,22 +128,6 @@ function link(scope, elem, attrs) { } }); - let extCompleter = { - identifierRegexps: [/[\[\]a-zA-Z_0-9=]/], - getCompletions: function (editor, session, pos, prefix, callback) { - console.log(pos); - scope.getCompletions({$query: prefix}).then(results => { - callback(null, results.map(hit => { - return { - caption: hit.word, - value: hit.word, - meta: hit.type - }; - })); - }); - }, - }; - function setLangMode(lang) { let aceModeName = `ace/mode/${lang}`; setModuleUrl("mode", lang); @@ -161,6 +145,8 @@ function link(scope, elem, attrs) { codeEditor.completers.push(scope.getCompleter()); } }); + + codeEditor.setBehavioursEnabled(true); } function setThemeMode(theme) { diff --git a/public/app/plugins/datasource/prometheus/completer.ts b/public/app/plugins/datasource/prometheus/completer.ts index da5f8102ac0..b7bf60abe02 100644 --- a/public/app/plugins/datasource/prometheus/completer.ts +++ b/public/app/plugins/datasource/prometheus/completer.ts @@ -9,12 +9,30 @@ export class PromCompleter { } getCompletions(editor, session, pos, prefix, callback) { + if (prefix === '[') { + var vectors = []; + for (let unit of ['s', 'm', 'h']) { + for (let value of [1,5,10,30]) { + vectors.push({caption: value+unit, value: '['+value+unit, meta: 'range vector'}); + } + } + callback(null, vectors); + return; + } + var query = prefix; + var line = editor.session.getLine(pos.row); + return this.datasource.performSuggestQuery(query).then(metricNames => { callback(null, metricNames.map(name => { + let value = name; + if (prefix === '(') { + value = '(' + name; + } + return { caption: name, - value: name, + value: value, meta: 'metric', }; }));