【发布时间】:2013-11-30 03:54:11
【问题描述】:
我不知道如何将表格添加到 codemirror。我包含了 sql-hint.js,并为关键字工作,但不明白如何添加表和列...
【问题讨论】:
我不知道如何将表格添加到 codemirror。我包含了 sql-hint.js,并为关键字工作,但不明白如何添加表和列...
【问题讨论】:
我知道这个问题有点老了,但是..我找到了一个有趣的方法,在 4.3 版本中有效(我对旧版本一无所知):只需添加“CodeMirror.hint.sql”值(不带引号,作为它的一个函数)作为“提示”选项,并将“表”对象添加为“提示选项”对象中定义的子对象。
类似:
CodeMirror.fromTextArea(document.getElementsByTagName("textarea")[0], {
mode: "text/x-sql",
extraKeys: {"Ctrl-Space": "autocomplete"}, // To invoke the auto complete
hint: CodeMirror.hint.sql,
hintOptions: {
tables: {
"table1": [ "col_A", "col_B", "col_C" ],
"table2": [ "other_columns1", "other_columns2" ]
}
}
});
就是这样。请注意,绝对不需要“extraKeys”,但我发现更轻松地测试自动完成功能非常棒。 =)
祝你好运。 :)
【讨论】:
"tabl,按CTRL+空格,然后选择table1,它就会变成"tabltable1。更糟糕的是,我将其更正为"table1".,然后自动完成无法提出"col_A"....
遗憾的是,这似乎没有记录在任何地方。
经过反复试验,我发现您可以在调用提示时将表名和列名的结构作为选项传递,如下所示:
CodeMirror.commands.autocomplete = function(cm) {
CodeMirror.showHint(cm, CodeMirror.hint.sql, {
tables: {
"table1": [ "col_A", "col_B", "col_C" ],
"table2": [ "other_columns1", "other_columns2" ]
}
} );
}
【讨论】: