Files
seal/static/ace/ace-init.js
2019-07-09 17:41:03 +08:00

156 lines
4.0 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//初始化ace编辑器对象
editor = ace.edit("sql_content_editor");
//设置风格和语言更多风格和语言请到github上相应目录查看
theme = "textmate";
language = "mysql"; // TODO 可以按照实例类型自动变更
editor.setTheme("ace/theme/" + theme);
editor.session.setMode("ace/mode/" + language);
editor.$blockScrolling = Infinity;
editor.setValue("");
//字体大小
editor.setFontSize(12);
//设置只读true时只读用于展示代码
editor.setReadOnly(false);
//自动换行,设置为off关闭
editor.setOption("wrap", "free");
editor.getSession().setUseWrapMode(true);
//启用提示菜单
ace.require("ace/ext/language_tools");
editor.setOptions({
enableBasicAutocompletion: true,
enableSnippets: true,
enableLiveAutocompletion: true
});
//绑定快捷键
editor.commands.addCommand({
name: "alter",
bindKey: {win: "Ctrl-Enter", mac: "Command-Enter"},
exec: function (editor) {
sqlquery();
}
});
//设置自动提示代码
var setCompleteData = function (data) {
var langTools = ace.require("ace/ext/language_tools");
langTools.addCompleter({
getCompletions: function (editor, session, pos, prefix, callback) {
if (prefix.length === 0) {
return callback(null, []);
} else {
return callback(null, data);
}
}
});
};
//增加数据库提示
function setDbsCompleteData(result) {
var tables = [];
for (var i = 0; i < result.length; i++) {
tables.push({
name: result[i],
value: result[i],
caption: result[i],
meta: "database",
score: 100
});
}
setCompleteData(tables);
}
//增加模式提示
function setSchemasCompleteData(result) {
var tables = [];
for (var i = 0; i < result.length; i++) {
tables.push({
name: result[i],
value: result[i],
caption: result[i],
meta: "schema",
score: 100
});
}
setCompleteData(tables);
}
//增加表提示
function setTablesCompleteData(result) {
var meta = $("#db_name").val();
if ($("#schema_name").val()) {
meta = $("#schema_name").val();
}
var tables = [];
for (var i = 0; i < result.length; i++) {
tables.push({
name: result[i],
value: result[i],
caption: result[i],
meta: meta,
score: 100
});
}
setCompleteData(tables);
}
//增加字段提示
function setColumnsCompleteData(result) {
if (result) {
var tables = [];
for (var i = 0; i < result.length; i++) {
tables.push({
name: result[i],
value: result[i],
caption: result[i],
meta: $("#table_name").val(),
score: 100
});
}
setCompleteData(columns);
} else {
$.ajax({
type: "post",
url: "/instance/instance_resource/",
dataType: "json",
data: {
instance_name: $("#instance_name").val(),
db_name: $("#db_name").val(),
schema_name: $("#schema_name").val(),
tb_name: $("#table_name").val(),
resource_type: "column"
},
complete: function () {
},
success: function (data) {
if (data.status === 0) {
var result = data.data;
var columns = [];
for (var i = 0; i < result.length; i++) {
columns.push({
name: result[i],
value: result[i],
caption: result[i],
meta: $("#table_name").val(),
score: 100
})
}
setCompleteData(columns);
} else {
alert(data.msg);
}
}
});
}
}