Автозаполнение Intellij IDEA ColdFusion SQL

Я использую Intellij IDEA с приложениями ColdFusion. База данных / источник данных загружены, и соединение было успешным (проверено). Я использую MySQL с драйверами по умолчанию, установленными intellij IDEA.

Я пытаюсь использовать <cfquery>, и Intellij IDEA, похоже, не выполняет автозаполнение. Когда я набираю имя таблицы или поля в своей базе данных, оно не предлагает это имя. Кажется, что вместо автозаполнения используется только обобщенный SQL. Как мне включить это или заставить работать с ColdFusion?


person Ryan Watts    schedule 15.11.2013    source источник
comment
Автозаполнение обычно требует, чтобы javascript выполнял вызов ajax в базе данных, чтобы получить значения, предлагаемые пользователю. По данным тега я вижу, что intellij-idea - это IDE. Когда вы делали то, что делали, был ли написан какой-нибудь код, который вы могли видеть?   -  person Dan Bracuk    schedule 15.11.2013
comment
Да, ‹cfquery› - это тег холодного слияния, который вызывает запрос к указанной базе данных, например ‹cfquery datasource = learncfinaweek›. Базовая функциональность этого кода подтолкнет intellij к идее отображать мои запросы по мере того, как я набираю такой оператор, как SELECT name. Однако в моем случае, когда я набираю SELECT, он не предлагает мне список опций для автозаполнения.   -  person Ryan Watts    schedule 16.11.2013
comment
Автозаполнение - это функция пользовательского интерфейса. Тот, который существовал в IDE задолго до того, как он появился в формах / браузерах (если на то пошло, он существовал там до того, как все сошли с ума от ajax, и, вероятно, все еще наиболее распространен как не-ajax-функциональность адресной строки). Anways, проблема, с которой сталкивается Райан, заключается в том, что в Intellij Idea есть функция, в которой она автоматически заполняет имена таблиц / столбцов, но у него это не работает. Ничего общего с генерируемым кодом; По-видимому, это какая-то проблема с настройкой / конфигурацией.   -  person Peter Boughton    schedule 16.11.2013
comment
Возможно, вам придется попробовать что-то с помощью языковых инъекций, однако я не удалось заставить это работать (даже с другими языками) - документы не совпадали с тем, что я вижу, поэтому может быть для другой версии.   -  person Peter Boughton    schedule 19.11.2013


Ответы (1)


Если плагин ColdFusion для IntelliJ не имеет возможности указать используемые базы данных или источники данных ColdFusion, вы не сможете получить такого рода «помощь с кодом». Даже конструктору ColdFusion требуется, чтобы вы добавили информацию о своем сервере и включили RDS, чтобы обрабатывать предложения «помощь кода» для запросов.

person Scott Stroz    schedule 18.11.2013
comment
Привет, Спасибо за ответ, Скотт. Уверяю вас, что база данных определена. В Intellij есть вкладка под названием база данных, где вы можете напрямую подключаться к источникам данных, которые вы используете. Я могу открыть это соединение с базой данных и выполнять запросы из браузера sql, что дает мне знать, что ide на самом деле подключен к источнику данных. Однако, когда я пытаюсь использовать автозаполнение в моем ‹cfqueries›, он не дает мне подсказок из базы данных, которую я использовал. - person Ryan Watts; 18.11.2013
comment
Когда вы используете <cfquery> IntelliJ не знает, какая у вас база данных, к которой вы пытаетесь подключиться - только к какому источнику данных - да, вы можете использовать такие атрибуты, как server в <cfquery>, но я сомневаюсь, что плагин IntelliJ ColdFusion достаточно умен, чтобы справиться с этим. Подключение к базе данных через IDE отличается от подключения к источнику данных ColdFusion. Да, они ОЧЕНЬ похожи, но они разные. - person Scott Stroz; 18.11.2013
comment
Итак, как мне установить правильное соединение? - person Ryan Watts; 18.11.2013
comment
Используете IntelliJ? Вы не можете, не так, как хотите. - person Scott Stroz; 18.11.2013
comment
Об этой функции говорят повсюду, и она предлагается в каждом коде, кроме холодного слияния, даже с php. Я считаю, что это может быть настройка или что-то, что я должен включить. - person Ryan Watts; 19.11.2013
comment
Я сомневаюсь, что плагин IntelliJ ColdFusion достаточно умен, чтобы справиться с этим - сопоставление атрибута источника данных из тега cfquery просто - и даже если это не так, IntelliJ IDEA делает много действительно сложных вещей, поэтому нет причин, по которым он не может этого сделать. - person Peter Boughton; 19.11.2013
comment
Я скачал его раньше и открыл файл cfquery в; затем была вещь, которая побудила меня настроить источник данных (предполагая, что эта функция реализована), но я не мог определить правильный синтаксис JDBC для использования для MS SQL Server (единственная база данных, которая у меня была доступно), и у него не было времени на тщательное расследование. - person Peter Boughton; 19.11.2013
comment
@PeterBoughton Я начал свой первоначальный ответ с отказа от ответственности о необходимости настройки этого. Сопоставление атрибута источника данных в теге cfquery легко .... знать, на какую базу данных ссылается этот источник данных, не так просто, если у IntelliJ нет возможности узнать, к какой базе данных относится источник данных. - person Scott Stroz; 19.11.2013
comment
Вместо того, чтобы гадать, что IDEA может или не может делать, и использовать заявления об отказе от ответственности и оговорки в случае, если ваши предположения ошибочны, почему бы на самом деле не проверить, что она может делать? Знать, на какую базу данных ссылаются легко: вы просите разработчика сообщить вам. Это то, что делает IntelliJ IDEA. Когда у вас есть запрос и не настроен источник данных, он специально предлагает Нет настроенных источников данных для запуска этого SQL и предоставления расширенной помощи по коду. - person Peter Boughton; 19.11.2013
comment
IDEA поддерживает автозаполнение SQL - опять же, в нем конкретно говорится: Все функции IntelliJ IDEA предоставляет SQL, также доступны для SQL, встроенного в другие языки. и он знает об источниках данных, и он сообщает вам, что может предоставить расширенную помощь по коду, если источник данных настроен - все, что нужно IntelliJ IDEA, доступно - проблема OP просто выясняет некоторую недостающую часть конфигурации, которая заставляет его работать. - person Peter Boughton; 19.11.2013
comment
Это то, что я сказал в своем ответе: если плагин ColdFusion для IntelliJ не имеет возможности указать используемые базы данных или источники данных ColdFusion, вы не сможете получить такого рода «помощь с кодом». Только, похоже, это не относится к плагину ColdFusion. - person Scott Stroz; 19.11.2013
comment
По-видимому, он НЕ предлагал OP предоставить информацию о базе данных, иначе у них не было бы необходимости публиковать сообщения. - person Scott Stroz; 19.11.2013
comment
Привет, Скотт и Питер ... возможно, вы говорите о противоречии? Скотт говорит о DSN ColdFusion, а Питер - о IntelliJ IDEA? Возможно, это демонстрирует тот случай, когда Питер говорил о настройке JDBC, тогда как если бы он правильно интегрировался в ColdFusion, он бы прочитал это из CF DSN? - person Adam Cameron; 19.11.2013
comment
Я только что открыл файл в IntelliJ и создал блок cfquery, но мне НЕ предлагалось ввести информацию о базе данных. Я открыл файл, в котором было cfquery, и мне НЕ предлагалось ввести информацию о базе данных. - person Scott Stroz; 19.11.2013
comment
Мне нужно предоставить снимок экрана с подсказкой? : / Настройка источника данных - это один шаг (который, по словам ОП, они сделали), а не все решение. Исходя из того, что предлагает IDEA, кажется, что что-то в отношении языковых инъекций также может потребоваться. - person Peter Boughton; 19.11.2013
comment
Адам, автозаполнение SQL - это уже существующая функция, поэтому, хотя было бы неплохо интегрировать его в файлы конфигурации для CF / Railo, для этого также потребовалось бы больше работы от IntelliJ, чем просто этот блок SQL; этот атрибут является источником данных, который (теоретически) является единственной дополнительной работой, необходимой для поддержки cfquery. - person Peter Boughton; 19.11.2013