2013-11-16 2 views

ответ

17

К сожалению, это нигде не документируется.

С некоторыми пробами и ошибками, я был в состоянии понять, что вы можете передать в структуре имен таблиц и столбцов, как опции при вызове хинтера, как это:

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

Я знаю, что этот вопрос несколько старых, но .. Я нашел интересный способ, действующий в версии 4.3 (я ничего не знаю о старых версиях): просто добавьте значение «CodeMirror.hint.sql» (без кавычек, как его функцию) в качестве «подсказки »и добавить объект« таблицы »в качестве под-объекта, определенного в объекте« 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» абсолютно не требуется, но я нашел, что было бы лучше проверить автозаполнение легче. =)

Удачи. :)

+0

Проблема в том, что это работает только без кавычек. Как только я введу '' tabl', нажмите CTRL + Space и выберите 'table1', он будет равен' "tabltable1'. Хуже того, я исправляю его в '' table1 ".', а затем автозаполнение не может предложить' 'col_A'' .... –

Смежные вопросы