Autocomplete CodeMirror:如何向sql提示添加表?

Autocomplete CodeMirror:如何向sql提示添加表?,autocomplete,codemirror,Autocomplete,Codemirror,我不知道如何向codemirror添加表。我已经包含了sql-hint.js,并且可以处理关键字,但不了解如何添加表和列…遗憾的是,这似乎在任何地方都没有文档记录 通过一些尝试和错误,我发现在调用hinter时,可以将表名和列名的结构作为选项传入,如下所示: CodeMirror.commands.autocomplete = function(cm) { CodeMirror.showHint(cm, CodeMirror.hint.sql, { tables: {

我不知道如何向codemirror添加表。我已经包含了sql-hint.js,并且可以处理关键字,但不了解如何添加表和列…

遗憾的是,这似乎在任何地方都没有文档记录

通过一些尝试和错误,我发现在调用hinter时,可以将表名和列名的结构作为选项传入,如下所示:

CodeMirror.commands.autocomplete = function(cm) {
    CodeMirror.showHint(cm, CodeMirror.hint.sql, { 
        tables: {
            "table1": [ "col_A", "col_B", "col_C" ],
            "table2": [ "other_columns1", "other_columns2" ]
        }
    } );
}

我知道这个问题有点老了,但是..我发现了一个有趣的方法,在4.3版本中有效(我不知道关于旧版本的任何信息):只需添加“codemirr.hint.sql”值(不带引号,作为函数)作为“hint”选项,并添加“tables”对象作为“hintOptions”对象中定义的子对象

比如:

CodeMirror.fromTextArea(document.getElementsByTagName(“textarea”)[0]{
模式:“文本/x-sql”,
外键:{“Ctrl空格”:“autocomplete”},//调用自动完成
提示:CodeMirror.hint.sql,
提示:{
表:{
“表1”:[“A列”、“B列”、“C列”],
“表2”:[“其他栏1”、“其他栏2”]
}
}
}); 
就这样。请注意,“extraKeys”是绝对不需要的,但我发现更容易测试autocomplete非常好。=)


祝你好运

问题是,这只适用于没有引号的情况。一旦我输入
“tabl
,按CTRL+Space,然后选择
table1
,它就会变成
“tabletable1
。更糟糕的是,我将其更正为
“table1”
,然后autocomplete无法提出
“col_A”
…您好,我是这里的新手。我在codemirror版本5.60.0上试过这个,似乎没有显示表列。也许语法已经改变了