CodeMirror:如何将表添加到sql-hint?

时间:2013-11-16 20:20:09

标签: autocomplete codemirror

我无法想象如何向codemirror添加表。我有sql-hint.js,并为关键字工作,但不明白如何添加表和列...

2 个答案:

答案 0 :(得分:19)

可悲的是,这似乎没有记录在任何地方。

通过一些试验和错误,我能够发现你可以在调用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" ]
        }
    } );
}

答案 1 :(得分:18)

我知道这个问题有些陈旧但是..我找到了一个有趣的方法,在4.3版本中有效(我对旧版本一无所知):只需添加“CodeMirror.hint.sql”值(不带引号) ,作为一个函数)作为“提示”选项,并将“tables”对象添加为“hintOptions”对象中定义的子对象。

类似的东西:

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”,但我发现更容易测试自动完成功能非常棒。 =)

祝你好运。 :)