【问题标题】:CodeMirror: How add tables to sql-hint?CodeMirror:如何将表添加到 sql-hint?
【发布时间】:2013-11-30 03:54:11
【问题描述】:

我不知道如何将表格添加到 codemirror。我包含了 sql-hint.js,并为关键字工作,但不明白如何添加表和列...

【问题讨论】:

    标签: autocomplete codemirror


    【解决方案1】:

    我知道这个问题有点老了,但是..我找到了一个有趣的方法,在 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 版本 5.60.0 上试过这个,似乎没有显示表格列。可能语法变了
    【解决方案2】:

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

    经过反复试验,我发现您可以在调用提示时将表名和列名的结构作为选项传递,如下所示:

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

    【讨论】:

      猜你喜欢
      • 2022-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-11
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      相关资源
      最近更新 更多