diff --git a/js/src/plugins/codemirror/sql-lint.js b/js/src/plugins/codemirror/sql-lint.js new file mode 100644 index 0000000000..e52c0e2ced --- /dev/null +++ b/js/src/plugins/codemirror/sql-lint.js @@ -0,0 +1,41 @@ +import CodeMirror from 'codemirror'; +import CommonParams from '../../variables/common_params'; + +CodeMirror.sqlLint = function (text, updateLinting, options, cm) { + // Skipping check if text box is empty. + if (text.trim() === '') { + updateLinting(cm, []); + return; + } + + function handleResponse (response) { + var found = []; + for (var idx in response) { + found.push({ + from: CodeMirror.Pos( + response[idx].fromLine, response[idx].fromColumn + ), + to: CodeMirror.Pos( + response[idx].toLine, response[idx].toColumn + ), + messageHTML: response[idx].message, + severity : response[idx].severity + }); + } + + updateLinting(cm, found); + } + + $.ajax({ + method: 'POST', + url: 'lint.php', + dataType: 'json', + data: { + sql_query: text, + server: CommonParams.get('server'), + options: options.lintOptions, + no_history: true, + }, + success: handleResponse + }); +};